Skip to content
Snippets Groups Projects
  1. Feb 08, 2022
  2. Feb 07, 2022
    • Peter Maydell's avatar
      Merge remote-tracking branch... · 55ef0b70
      Peter Maydell authored
      Merge remote-tracking branch 'remotes/lvivier-gitlab/tags/linux-user-for-7.0-pull-request' into staging
      
      Linux-user pull request 20220207
      
      Fix target rlimits for alpha
      Add startime in /proc/self/stat
      
      # gpg: Signature made Mon 07 Feb 2022 08:27:27 GMT
      # gpg:                using RSA key CD2F75DDC8E3A4DC2E4F5173F30C38BD3F2FBE3C
      # gpg:                issuer "laurent@vivier.eu"
      # gpg: Good signature from "Laurent Vivier <lvivier@redhat.com>" [full]
      # gpg:                 aka "Laurent Vivier <laurent@vivier.eu>" [full]
      # gpg:                 aka "Laurent Vivier (Red Hat) <lvivier@redhat.com>" [full]
      # Primary key fingerprint: CD2F 75DD C8E3 A4DC 2E4F  5173 F30C 38BD 3F2F BE3C
      
      * remotes/lvivier-gitlab/tags/linux-user-for-7.0-pull-request:
        linux-user/syscall: Translate TARGET_RLIMIT_RTTIME
        linux-user: Move generic TARGET_RLIMIT* definitions to generic/target_resource.h
        linux-user: Implement starttime field in self stat emulation
        linux-user: sigprocmask check read perms first
        linux-user: rt_sigprocmask, check read perms first
        linux-user: Fix inotify on aarch64
        linux-user/alpha: Fix target rlimits for alpha and rearrange for clarity
        linux-user: Remove unnecessary 'aligned' attribute from TaskState
      
      Signed-off-by: default avatarPeter Maydell <peter.maydell@linaro.org>
      55ef0b70
  3. Feb 06, 2022
    • Peter Maydell's avatar
      Merge remote-tracking branch 'remotes/mst/tags/for_upstream' into staging · 0d564a3e
      Peter Maydell authored
      
      virtio,pc: features, cleanups, fixes
      
      Part of ACPI ERST support
      fixes, cleanups
      
      Signed-off-by: default avatarMichael S. Tsirkin <mst@redhat.com>
      
      # gpg: Signature made Sun 06 Feb 2022 09:36:24 GMT
      # gpg:                using RSA key 5D09FD0871C8F85B94CA8A0D281F0DB8D28D5469
      # gpg:                issuer "mst@redhat.com"
      # gpg: Good signature from "Michael S. Tsirkin <mst@kernel.org>" [full]
      # gpg:                 aka "Michael S. Tsirkin <mst@redhat.com>" [full]
      # Primary key fingerprint: 0270 606B 6F3C DF3D 0B17  0970 C350 3912 AFBE 8E67
      #      Subkey fingerprint: 5D09 FD08 71C8 F85B 94CA  8A0D 281F 0DB8 D28D 5469
      
      * remotes/mst/tags/for_upstream: (24 commits)
        util/oslib-posix: Fix missing unlock in the error path of os_mem_prealloc()
        ACPI ERST: step 6 of bios-tables-test.c
        ACPI ERST: bios-tables-test testcase
        ACPI ERST: qtest for ERST
        ACPI ERST: create ACPI ERST table for pc/x86 machines
        ACPI ERST: build the ACPI ERST table
        ACPI ERST: support for ACPI ERST feature
        ACPI ERST: header file for ERST
        ACPI ERST: PCI device_id for ERST
        ACPI ERST: bios-tables-test.c steps 1 and 2
        libvhost-user: Map shared RAM with MAP_NORESERVE to support virtio-mem with hugetlb
        libvhost-user: handle removal of identical regions
        libvhost-user: prevent over-running max RAM slots
        libvhost-user: fix VHOST_USER_REM_MEM_REG not closing the fd
        libvhost-user: Simplify VHOST_USER_REM_MEM_REG
        libvhost-user: Add vu_add_mem_reg input validation
        libvhost-user: Add vu_rem_mem_reg input validation
        tests: acpi: test short OEM_ID/OEM_TABLE_ID values in test_oem_fields()
        tests: acpi: update expected blobs
        acpi: fix OEM ID/OEM Table ID padding
        ...
      
      Signed-off-by: default avatarPeter Maydell <peter.maydell@linaro.org>
      0d564a3e
    • David Hildenbrand's avatar
      util/oslib-posix: Fix missing unlock in the error path of os_mem_prealloc() · dd4fc605
      David Hildenbrand authored
      
      We're missing an unlock in case installing the signal handler failed.
      Fortunately, we barely see this error in real life.
      
      Fixes: a960d664 ("util/oslib-posix: Support concurrent os_mem_prealloc() invocation")
      Fixes: CID 1468941
      Cc: Paolo Bonzini <pbonzini@redhat.com>
      Cc: Michael S. Tsirkin <mst@redhat.com>
      Cc: Pankaj Gupta <pankaj.gupta@ionos.com>
      Cc: Daniel P. Berrangé <berrange@redhat.com>
      Cc: Michal Privoznik <mprivozn@redhat.com>
      Signed-off-by: default avatarDavid Hildenbrand <david@redhat.com>
      Message-Id: <20220111120830.119912-1-david@redhat.com>
      Reviewed-by: default avatarPankaj Gupta <pankaj.gupta@ionos.com>
      Reviewed-by: default avatarMichael S. Tsirkin <mst@redhat.com>
      Signed-off-by: default avatarMichael S. Tsirkin <mst@redhat.com>
      dd4fc605
    • Eric DeVolder's avatar
      ACPI ERST: step 6 of bios-tables-test.c · a4752a51
      Eric DeVolder authored
      
      Following the guidelines in tests/qtest/bios-tables-test.c, this
      is step 6.
      
      Below is the disassembly of tests/data/acpi/pc/ERST.acpierst.
      
       /*
        * Intel ACPI Component Architecture
        * AML/ASL+ Disassembler version 20180508 (64-bit version)
        * Copyright (c) 2000 - 2018 Intel Corporation
        *
        * Disassembly of tests/data/acpi/pc/ERST.acpierst, Thu Dec  2 13:32:07 2021
        *
        * ACPI Data Table [ERST]
        *
        * Format: [HexOffset DecimalOffset ByteLength]  FieldName : FieldValue
        */
      
       [000h 0000   4]                    Signature : "ERST"    [Error Record Serialization Table]
       [004h 0004   4]                 Table Length : 00000390
       [008h 0008   1]                     Revision : 01
       [009h 0009   1]                     Checksum : D6
       [00Ah 0010   6]                       Oem ID : "BOCHS "
       [010h 0016   8]                 Oem Table ID : "BXPC    "
       [018h 0024   4]                 Oem Revision : 00000001
       [01Ch 0028   4]              Asl Compiler ID : "BXPC"
       [020h 0032   4]        Asl Compiler Revision : 00000001
      
       [024h 0036   4]  Serialization Header Length : 00000030
       [028h 0040   4]                     Reserved : 00000000
       [02Ch 0044   4]      Instruction Entry Count : 0000001B
      
       [030h 0048   1]                       Action : 00 [Begin Write Operation]
       [031h 0049   1]                  Instruction : 03 [Write Register Value]
       [032h 0050   1]        Flags (decoded below) : 00
                             Preserve Register Bits : 0
       [033h 0051   1]                     Reserved : 00
      
       [034h 0052  12]              Register Region : [Generic Address Structure]
       [034h 0052   1]                     Space ID : 00 [SystemMemory]
       [035h 0053   1]                    Bit Width : 20
       [036h 0054   1]                   Bit Offset : 00
       [037h 0055   1]         Encoded Access Width : 03 [DWord Access:32]
       [038h 0056   8]                      Address : 00000000FEBF3000
      
       [040h 0064   8]                        Value : 0000000000000000
       [048h 0072   8]                         Mask : 00000000000000FF
      
       [050h 0080   1]                       Action : 01 [Begin Read Operation]
       [051h 0081   1]                  Instruction : 03 [Write Register Value]
       [052h 0082   1]        Flags (decoded below) : 00
                             Preserve Register Bits : 0
       [053h 0083   1]                     Reserved : 00
      
       [054h 0084  12]              Register Region : [Generic Address Structure]
       [054h 0084   1]                     Space ID : 00 [SystemMemory]
       [055h 0085   1]                    Bit Width : 20
       [056h 0086   1]                   Bit Offset : 00
       [057h 0087   1]         Encoded Access Width : 03 [DWord Access:32]
       [058h 0088   8]                      Address : 00000000FEBF3000
      
       [060h 0096   8]                        Value : 0000000000000001
       [068h 0104   8]                         Mask : 00000000000000FF
      
       [070h 0112   1]                       Action : 02 [Begin Clear Operation]
       [071h 0113   1]                  Instruction : 03 [Write Register Value]
       [072h 0114   1]        Flags (decoded below) : 00
                             Preserve Register Bits : 0
       [073h 0115   1]                     Reserved : 00
      
       [074h 0116  12]              Register Region : [Generic Address Structure]
       [074h 0116   1]                     Space ID : 00 [SystemMemory]
       [075h 0117   1]                    Bit Width : 20
       [076h 0118   1]                   Bit Offset : 00
       [077h 0119   1]         Encoded Access Width : 03 [DWord Access:32]
       [078h 0120   8]                      Address : 00000000FEBF3000
      
       [080h 0128   8]                        Value : 0000000000000002
       [088h 0136   8]                         Mask : 00000000000000FF
      
       [090h 0144   1]                       Action : 03 [End Operation]
       [091h 0145   1]                  Instruction : 03 [Write Register Value]
       [092h 0146   1]        Flags (decoded below) : 00
                             Preserve Register Bits : 0
       [093h 0147   1]                     Reserved : 00
      
       [094h 0148  12]              Register Region : [Generic Address Structure]
       [094h 0148   1]                     Space ID : 00 [SystemMemory]
       [095h 0149   1]                    Bit Width : 20
       [096h 0150   1]                   Bit Offset : 00
       [097h 0151   1]         Encoded Access Width : 03 [DWord Access:32]
       [098h 0152   8]                      Address : 00000000FEBF3000
      
       [0A0h 0160   8]                        Value : 0000000000000003
       [0A8h 0168   8]                         Mask : 00000000000000FF
      
       [0B0h 0176   1]                       Action : 04 [Set Record Offset]
       [0B1h 0177   1]                  Instruction : 02 [Write Register]
       [0B2h 0178   1]        Flags (decoded below) : 00
                             Preserve Register Bits : 0
       [0B3h 0179   1]                     Reserved : 00
      
       [0B4h 0180  12]              Register Region : [Generic Address Structure]
       [0B4h 0180   1]                     Space ID : 00 [SystemMemory]
       [0B5h 0181   1]                    Bit Width : 20
       [0B6h 0182   1]                   Bit Offset : 00
       [0B7h 0183   1]         Encoded Access Width : 03 [DWord Access:32]
       [0B8h 0184   8]                      Address : 00000000FEBF3008
      
       [0C0h 0192   8]                        Value : 0000000000000000
       [0C8h 0200   8]                         Mask : 00000000FFFFFFFF
      
       [0D0h 0208   1]                       Action : 04 [Set Record Offset]
       [0D1h 0209   1]                  Instruction : 03 [Write Register Value]
       [0D2h 0210   1]        Flags (decoded below) : 00
                             Preserve Register Bits : 0
       [0D3h 0211   1]                     Reserved : 00
      
       [0D4h 0212  12]              Register Region : [Generic Address Structure]
       [0D4h 0212   1]                     Space ID : 00 [SystemMemory]
       [0D5h 0213   1]                    Bit Width : 20
       [0D6h 0214   1]                   Bit Offset : 00
       [0D7h 0215   1]         Encoded Access Width : 03 [DWord Access:32]
       [0D8h 0216   8]                      Address : 00000000FEBF3000
      
       [0E0h 0224   8]                        Value : 0000000000000004
       [0E8h 0232   8]                         Mask : 00000000000000FF
      
       [0F0h 0240   1]                       Action : 05 [Execute Operation]
       [0F1h 0241   1]                  Instruction : 03 [Write Register Value]
       [0F2h 0242   1]        Flags (decoded below) : 00
                             Preserve Register Bits : 0
       [0F3h 0243   1]                     Reserved : 00
      
       [0F4h 0244  12]              Register Region : [Generic Address Structure]
       [0F4h 0244   1]                     Space ID : 00 [SystemMemory]
       [0F5h 0245   1]                    Bit Width : 20
       [0F6h 0246   1]                   Bit Offset : 00
       [0F7h 0247   1]         Encoded Access Width : 03 [DWord Access:32]
       [0F8h 0248   8]                      Address : 00000000FEBF3008
      
       [100h 0256   8]                        Value : 000000000000009C
       [108h 0264   8]                         Mask : 00000000000000FF
      
       [110h 0272   1]                       Action : 05 [Execute Operation]
       [111h 0273   1]                  Instruction : 03 [Write Register Value]
       [112h 0274   1]        Flags (decoded below) : 00
                             Preserve Register Bits : 0
       [113h 0275   1]                     Reserved : 00
      
       [114h 0276  12]              Register Region : [Generic Address Structure]
       [114h 0276   1]                     Space ID : 00 [SystemMemory]
       [115h 0277   1]                    Bit Width : 20
       [116h 0278   1]                   Bit Offset : 00
       [117h 0279   1]         Encoded Access Width : 03 [DWord Access:32]
       [118h 0280   8]                      Address : 00000000FEBF3000
      
       [120h 0288   8]                        Value : 0000000000000005
       [128h 0296   8]                         Mask : 00000000000000FF
      
       [130h 0304   1]                       Action : 06 [Check Busy Status]
       [131h 0305   1]                  Instruction : 03 [Write Register Value]
       [132h 0306   1]        Flags (decoded below) : 00
                             Preserve Register Bits : 0
       [133h 0307   1]                     Reserved : 00
      
       [134h 0308  12]              Register Region : [Generic Address Structure]
       [134h 0308   1]                     Space ID : 00 [SystemMemory]
       [135h 0309   1]                    Bit Width : 20
       [136h 0310   1]                   Bit Offset : 00
       [137h 0311   1]         Encoded Access Width : 03 [DWord Access:32]
       [138h 0312   8]                      Address : 00000000FEBF3000
      
       [140h 0320   8]                        Value : 0000000000000006
       [148h 0328   8]                         Mask : 00000000000000FF
      
       [150h 0336   1]                       Action : 06 [Check Busy Status]
       [151h 0337   1]                  Instruction : 01 [Read Register Value]
       [152h 0338   1]        Flags (decoded below) : 00
                             Preserve Register Bits : 0
       [153h 0339   1]                     Reserved : 00
      
       [154h 0340  12]              Register Region : [Generic Address Structure]
       [154h 0340   1]                     Space ID : 00 [SystemMemory]
       [155h 0341   1]                    Bit Width : 20
       [156h 0342   1]                   Bit Offset : 00
       [157h 0343   1]         Encoded Access Width : 03 [DWord Access:32]
       [158h 0344   8]                      Address : 00000000FEBF3008
      
       [160h 0352   8]                        Value : 0000000000000001
       [168h 0360   8]                         Mask : 00000000000000FF
      
       [170h 0368   1]                       Action : 07 [Get Command Status]
       [171h 0369   1]                  Instruction : 03 [Write Register Value]
       [172h 0370   1]        Flags (decoded below) : 00
                             Preserve Register Bits : 0
       [173h 0371   1]                     Reserved : 00
      
       [174h 0372  12]              Register Region : [Generic Address Structure]
       [174h 0372   1]                     Space ID : 00 [SystemMemory]
       [175h 0373   1]                    Bit Width : 20
       [176h 0374   1]                   Bit Offset : 00
       [177h 0375   1]         Encoded Access Width : 03 [DWord Access:32]
       [178h 0376   8]                      Address : 00000000FEBF3000
      
       [180h 0384   8]                        Value : 0000000000000007
       [188h 0392   8]                         Mask : 00000000000000FF
      
       [190h 0400   1]                       Action : 07 [Get Command Status]
       [191h 0401   1]                  Instruction : 00 [Read Register]
       [192h 0402   1]        Flags (decoded below) : 00
                             Preserve Register Bits : 0
       [193h 0403   1]                     Reserved : 00
      
       [194h 0404  12]              Register Region : [Generic Address Structure]
       [194h 0404   1]                     Space ID : 00 [SystemMemory]
       [195h 0405   1]                    Bit Width : 20
       [196h 0406   1]                   Bit Offset : 00
       [197h 0407   1]         Encoded Access Width : 03 [DWord Access:32]
       [198h 0408   8]                      Address : 00000000FEBF3008
      
       [1A0h 0416   8]                        Value : 0000000000000000
       [1A8h 0424   8]                         Mask : 00000000000000FF
      
       [1B0h 0432   1]                       Action : 08 [Get Record Identifier]
       [1B1h 0433   1]                  Instruction : 03 [Write Register Value]
       [1B2h 0434   1]        Flags (decoded below) : 00
                             Preserve Register Bits : 0
       [1B3h 0435   1]                     Reserved : 00
      
       [1B4h 0436  12]              Register Region : [Generic Address Structure]
       [1B4h 0436   1]                     Space ID : 00 [SystemMemory]
       [1B5h 0437   1]                    Bit Width : 20
       [1B6h 0438   1]                   Bit Offset : 00
       [1B7h 0439   1]         Encoded Access Width : 03 [DWord Access:32]
       [1B8h 0440   8]                      Address : 00000000FEBF3000
      
       [1C0h 0448   8]                        Value : 0000000000000008
       [1C8h 0456   8]                         Mask : 00000000000000FF
      
       [1D0h 0464   1]                       Action : 08 [Get Record Identifier]
       [1D1h 0465   1]                  Instruction : 00 [Read Register]
       [1D2h 0466   1]        Flags (decoded below) : 00
                             Preserve Register Bits : 0
       [1D3h 0467   1]                     Reserved : 00
      
       [1D4h 0468  12]              Register Region : [Generic Address Structure]
       [1D4h 0468   1]                     Space ID : 00 [SystemMemory]
       [1D5h 0469   1]                    Bit Width : 40
       [1D6h 0470   1]                   Bit Offset : 00
       [1D7h 0471   1]         Encoded Access Width : 04 [QWord Access:64]
       [1D8h 0472   8]                      Address : 00000000FEBF3008
      
       [1E0h 0480   8]                        Value : 0000000000000000
       [1E8h 0488   8]                         Mask : FFFFFFFFFFFFFFFF
      
       [1F0h 0496   1]                       Action : 09 [Set Record Identifier]
       [1F1h 0497   1]                  Instruction : 02 [Write Register]
       [1F2h 0498   1]        Flags (decoded below) : 00
                             Preserve Register Bits : 0
       [1F3h 0499   1]                     Reserved : 00
      
       [1F4h 0500  12]              Register Region : [Generic Address Structure]
       [1F4h 0500   1]                     Space ID : 00 [SystemMemory]
       [1F5h 0501   1]                    Bit Width : 40
       [1F6h 0502   1]                   Bit Offset : 00
       [1F7h 0503   1]         Encoded Access Width : 04 [QWord Access:64]
       [1F8h 0504   8]                      Address : 00000000FEBF3008
      
       [200h 0512   8]                        Value : 0000000000000000
       [208h 0520   8]                         Mask : FFFFFFFFFFFFFFFF
      
       [210h 0528   1]                       Action : 09 [Set Record Identifier]
       [211h 0529   1]                  Instruction : 03 [Write Register Value]
       [212h 0530   1]        Flags (decoded below) : 00
                             Preserve Register Bits : 0
       [213h 0531   1]                     Reserved : 00
      
       [214h 0532  12]              Register Region : [Generic Address Structure]
       [214h 0532   1]                     Space ID : 00 [SystemMemory]
       [215h 0533   1]                    Bit Width : 20
       [216h 0534   1]                   Bit Offset : 00
       [217h 0535   1]         Encoded Access Width : 03 [DWord Access:32]
       [218h 0536   8]                      Address : 00000000FEBF3000
      
       [220h 0544   8]                        Value : 0000000000000009
       [228h 0552   8]                         Mask : 00000000000000FF
      
       [230h 0560   1]                       Action : 0A [Get Record Count]
       [231h 0561   1]                  Instruction : 03 [Write Register Value]
       [232h 0562   1]        Flags (decoded below) : 00
                             Preserve Register Bits : 0
       [233h 0563   1]                     Reserved : 00
      
       [234h 0564  12]              Register Region : [Generic Address Structure]
       [234h 0564   1]                     Space ID : 00 [SystemMemory]
       [235h 0565   1]                    Bit Width : 20
       [236h 0566   1]                   Bit Offset : 00
       [237h 0567   1]         Encoded Access Width : 03 [DWord Access:32]
       [238h 0568   8]                      Address : 00000000FEBF3000
      
       [240h 0576   8]                        Value : 000000000000000A
       [248h 0584   8]                         Mask : 00000000000000FF
      
       [250h 0592   1]                       Action : 0A [Get Record Count]
       [251h 0593   1]                  Instruction : 00 [Read Register]
       [252h 0594   1]        Flags (decoded below) : 00
                             Preserve Register Bits : 0
       [253h 0595   1]                     Reserved : 00
      
       [254h 0596  12]              Register Region : [Generic Address Structure]
       [254h 0596   1]                     Space ID : 00 [SystemMemory]
       [255h 0597   1]                    Bit Width : 20
       [256h 0598   1]                   Bit Offset : 00
       [257h 0599   1]         Encoded Access Width : 03 [DWord Access:32]
       [258h 0600   8]                      Address : 00000000FEBF3008
      
       [260h 0608   8]                        Value : 0000000000000000
       [268h 0616   8]                         Mask : 00000000FFFFFFFF
      
       [270h 0624   1]                       Action : 0B [Begin Dummy Write]
       [271h 0625   1]                  Instruction : 03 [Write Register Value]
       [272h 0626   1]        Flags (decoded below) : 00
                             Preserve Register Bits : 0
       [273h 0627   1]                     Reserved : 00
      
       [274h 0628  12]              Register Region : [Generic Address Structure]
       [274h 0628   1]                     Space ID : 00 [SystemMemory]
       [275h 0629   1]                    Bit Width : 20
       [276h 0630   1]                   Bit Offset : 00
       [277h 0631   1]         Encoded Access Width : 03 [DWord Access:32]
       [278h 0632   8]                      Address : 00000000FEBF3000
      
       [280h 0640   8]                        Value : 000000000000000B
       [288h 0648   8]                         Mask : 00000000000000FF
      
       [290h 0656   1]                       Action : 0D [Get Error Address Range]
       [291h 0657   1]                  Instruction : 03 [Write Register Value]
       [292h 0658   1]        Flags (decoded below) : 00
                             Preserve Register Bits : 0
       [293h 0659   1]                     Reserved : 00
      
       [294h 0660  12]              Register Region : [Generic Address Structure]
       [294h 0660   1]                     Space ID : 00 [SystemMemory]
       [295h 0661   1]                    Bit Width : 20
       [296h 0662   1]                   Bit Offset : 00
       [297h 0663   1]         Encoded Access Width : 03 [DWord Access:32]
       [298h 0664   8]                      Address : 00000000FEBF3000
      
       [2A0h 0672   8]                        Value : 000000000000000D
       [2A8h 0680   8]                         Mask : 00000000000000FF
      
       [2B0h 0688   1]                       Action : 0D [Get Error Address Range]
       [2B1h 0689   1]                  Instruction : 00 [Read Register]
       [2B2h 0690   1]        Flags (decoded below) : 00
                             Preserve Register Bits : 0
       [2B3h 0691   1]                     Reserved : 00
      
       [2B4h 0692  12]              Register Region : [Generic Address Structure]
       [2B4h 0692   1]                     Space ID : 00 [SystemMemory]
       [2B5h 0693   1]                    Bit Width : 40
       [2B6h 0694   1]                   Bit Offset : 00
       [2B7h 0695   1]         Encoded Access Width : 04 [QWord Access:64]
       [2B8h 0696   8]                      Address : 00000000FEBF3008
      
       [2C0h 0704   8]                        Value : 0000000000000000
       [2C8h 0712   8]                         Mask : FFFFFFFFFFFFFFFF
      
       [2D0h 0720   1]                       Action : 0E [Get Error Address Length]
       [2D1h 0721   1]                  Instruction : 03 [Write Register Value]
       [2D2h 0722   1]        Flags (decoded below) : 00
                             Preserve Register Bits : 0
       [2D3h 0723   1]                     Reserved : 00
      
       [2D4h 0724  12]              Register Region : [Generic Address Structure]
       [2D4h 0724   1]                     Space ID : 00 [SystemMemory]
       [2D5h 0725   1]                    Bit Width : 20
       [2D6h 0726   1]                   Bit Offset : 00
       [2D7h 0727   1]         Encoded Access Width : 03 [DWord Access:32]
       [2D8h 0728   8]                      Address : 00000000FEBF3000
      
       [2E0h 0736   8]                        Value : 000000000000000E
       [2E8h 0744   8]                         Mask : 00000000000000FF
      
       [2F0h 0752   1]                       Action : 0E [Get Error Address Length]
       [2F1h 0753   1]                  Instruction : 00 [Read Register]
       [2F2h 0754   1]        Flags (decoded below) : 00
                             Preserve Register Bits : 0
       [2F3h 0755   1]                     Reserved : 00
      
       [2F4h 0756  12]              Register Region : [Generic Address Structure]
       [2F4h 0756   1]                     Space ID : 00 [SystemMemory]
       [2F5h 0757   1]                    Bit Width : 40
       [2F6h 0758   1]                   Bit Offset : 00
       [2F7h 0759   1]         Encoded Access Width : 04 [QWord Access:64]
       [2F8h 0760   8]                      Address : 00000000FEBF3008
      
       [300h 0768   8]                        Value : 0000000000000000
       [308h 0776   8]                         Mask : 00000000FFFFFFFF
      
       [310h 0784   1]                       Action : 0F [Get Error Attributes]
       [311h 0785   1]                  Instruction : 03 [Write Register Value]
       [312h 0786   1]        Flags (decoded below) : 00
                             Preserve Register Bits : 0
       [313h 0787   1]                     Reserved : 00
      
       [314h 0788  12]              Register Region : [Generic Address Structure]
       [314h 0788   1]                     Space ID : 00 [SystemMemory]
       [315h 0789   1]                    Bit Width : 20
       [316h 0790   1]                   Bit Offset : 00
       [317h 0791   1]         Encoded Access Width : 03 [DWord Access:32]
       [318h 0792   8]                      Address : 00000000FEBF3000
      
       [320h 0800   8]                        Value : 000000000000000F
       [328h 0808   8]                         Mask : 00000000000000FF
      
       [330h 0816   1]                       Action : 0F [Get Error Attributes]
       [331h 0817   1]                  Instruction : 00 [Read Register]
       [332h 0818   1]        Flags (decoded below) : 00
                             Preserve Register Bits : 0
       [333h 0819   1]                     Reserved : 00
      
       [334h 0820  12]              Register Region : [Generic Address Structure]
       [334h 0820   1]                     Space ID : 00 [SystemMemory]
       [335h 0821   1]                    Bit Width : 20
       [336h 0822   1]                   Bit Offset : 00
       [337h 0823   1]         Encoded Access Width : 03 [DWord Access:32]
       [338h 0824   8]                      Address : 00000000FEBF3008
      
       [340h 0832   8]                        Value : 0000000000000000
       [348h 0840   8]                         Mask : 00000000FFFFFFFF
      
       [350h 0848   1]                       Action : 10 [Execute Timings]
       [351h 0849   1]                  Instruction : 03 [Write Register Value]
       [352h 0850   1]        Flags (decoded below) : 00
                             Preserve Register Bits : 0
       [353h 0851   1]                     Reserved : 00
      
       [354h 0852  12]              Register Region : [Generic Address Structure]
       [354h 0852   1]                     Space ID : 00 [SystemMemory]
       [355h 0853   1]                    Bit Width : 20
       [356h 0854   1]                   Bit Offset : 00
       [357h 0855   1]         Encoded Access Width : 03 [DWord Access:32]
       [358h 0856   8]                      Address : 00000000FEBF3000
      
       [360h 0864   8]                        Value : 0000000000000010
       [368h 0872   8]                         Mask : 00000000000000FF
      
       [370h 0880   1]                       Action : 10 [Execute Timings]
       [371h 0881   1]                  Instruction : 00 [Read Register]
       [372h 0882   1]        Flags (decoded below) : 00
                             Preserve Register Bits : 0
       [373h 0883   1]                     Reserved : 00
      
       [374h 0884  12]              Register Region : [Generic Address Structure]
       [374h 0884   1]                     Space ID : 00 [SystemMemory]
       [375h 0885   1]                    Bit Width : 40
       [376h 0886   1]                   Bit Offset : 00
       [377h 0887   1]         Encoded Access Width : 04 [QWord Access:64]
       [378h 0888   8]                      Address : 00000000FEBF3008
      
       [380h 0896   8]                        Value : 0000000000000000
       [388h 0904   8]                         Mask : FFFFFFFFFFFFFFFF
      
       Raw Table Data: Length 912 (0x390)
      
      Note that the contents of tests/data/q35/ERST.acpierst and
      tests/data/microvm/ERST.pcie are the same except for differences
      due to assigned base address.
      
      Files tests/data/pc/DSDT.acpierst and tests/data/acpi/q35/DSDT.acpierst
      are new files (and are included as a result of 'make check' process).
      Rather than provide the entire content, I am providing the differences
      between pc/DSDT and pc/DSDT.acpierst, and the difference between
      q35/DSDT and q35/DSDT.acpierst, with an explanation to follow.
      
      diff pc/DSDT pc/DSDT.acpierst:
       @@ -5,13 +5,13 @@
         *
         * Disassembling to symbolic ASL+ operators
         *
       - * Disassembly of tests/data/acpi/pc/DSDT, Thu Dec  2 10:10:13 2021
       + * Disassembly of tests/data/acpi/pc/DSDT.acpierst, Thu Dec  2 12:59:36 2021
         *
         * Original Table Header:
         *     Signature        "DSDT"
       - *     Length           0x00001772 (6002)
       + *     Length           0x00001751 (5969)
         *     Revision         0x01 **** 32-bit table (V1), no 64-bit math support
       - *     Checksum         0x9E
       + *     Checksum         0x95
         *     OEM ID           "BOCHS "
         *     OEM Table ID     "BXPC    "
         *     OEM Revision     0x00000001 (1)
       @@ -964,16 +964,11 @@ DefinitionBlock ("", "DSDT", 1, "BOCHS "
      
                    Device (S18)
                    {
       -                Name (_SUN, 0x03)  // _SUN: Slot User Number
                        Name (_ADR, 0x00030000)  // _ADR: Address
       -                Method (_EJ0, 1, NotSerialized)  // _EJx: Eject Device
       -                {
       -                    PCEJ (BSEL, _SUN)
       -                }
       -
       +                Name (ASUN, 0x03)
                        Method (_DSM, 4, Serialized)  // _DSM: Device-Specific Method
                        {
       -                    Return (PDSM (Arg0, Arg1, Arg2, Arg3, BSEL, _SUN))
       +                    Return (PDSM (Arg0, Arg1, Arg2, Arg3, BSEL, ASUN))
                        }
                    }
      
       @@ -1399,11 +1394,6 @@ DefinitionBlock ("", "DSDT", 1, "BOCHS "
      
                    Method (DVNT, 2, NotSerialized)
                    {
       -                If ((Arg0 & 0x08))
       -                {
       -                    Notify (S18, Arg1)
       -                }
       -
                        If ((Arg0 & 0x10))
                        {
                            Notify (S20, Arg1)
      
      diff q35/DSDT and q35/DSDT.acpierst:
       @@ -5,13 +5,13 @@
         *
         * Disassembling to symbolic ASL+ operators
         *
       - * Disassembly of tests/data/acpi/q35/DSDT, Thu Dec  2 10:10:13 2021
       + * Disassembly of tests/data/acpi/q35/DSDT.acpierst, Thu Dec  2 12:59:36 2021
         *
         * Original Table Header:
         *     Signature        "DSDT"
       - *     Length           0x00002061 (8289)
       + *     Length           0x00002072 (8306)
         *     Revision         0x01 **** 32-bit table (V1), no 64-bit math support
       - *     Checksum         0xFA
       + *     Checksum         0x9A
         *     OEM ID           "BOCHS "
         *     OEM Table ID     "BXPC    "
         *     OEM Revision     0x00000001 (1)
       @@ -3278,6 +3278,11 @@ DefinitionBlock ("", "DSDT", 1, "BOCHS "
                        }
                    }
      
       +            Device (S10)
       +            {
       +                Name (_ADR, 0x00020000)  // _ADR: Address
       +            }
       +
                    Method (PCNT, 0, NotSerialized)
                    {
                    }
      
      For both pc and q35, there is but a small difference between this
      DSDT.acpierst and the corresponding DSDT. In both cases, the changes
      occur under the hiearchy:
      
          Scope (\_SB)
          {
              Scope (PCI0)
              {
      
      which leads me to believe that the change to the DSDT was needed
      due to the introduction of the ERST PCI device.
      
      And is explained in detail by Ani Sinha:
      I have convinced myself of the changes we see in the DSDT tables.
      On i440fx side, we are adding a non-hotpluggable pci device on slot 3.
      So the changes we see are basically replacing an empty hotpluggable
      slot on the pci root port with a non-hotplugggable device.
      On q35, bsel on pcie root bus is not set (its not hotpluggable bus),
      so the change basically adds the address enumeration for the device.
      
      Signed-off-by: default avatarEric DeVolder <eric.devolder@oracle.com>
      Acked-by: default avatarAni Sinha <ani@anisinha.ca>
      Message-Id: <1643402289-22216-11-git-send-email-eric.devolder@oracle.com>
      Reviewed-by: default avatarMichael S. Tsirkin <mst@redhat.com>
      Signed-off-by: default avatarMichael S. Tsirkin <mst@redhat.com>
      a4752a51
    • Eric DeVolder's avatar
      ACPI ERST: bios-tables-test testcase · 646a793c
      Eric DeVolder authored
      
      This change implements the test suite checks for the ERST table.
      
      Signed-off-by: default avatarEric DeVolder <eric.devolder@oracle.com>
      Reviewed-by: default avatarAni Sinha <ani@anisinha.ca>
      Message-Id: <1643402289-22216-10-git-send-email-eric.devolder@oracle.com>
      Reviewed-by: default avatarMichael S. Tsirkin <mst@redhat.com>
      Signed-off-by: default avatarMichael S. Tsirkin <mst@redhat.com>
      646a793c
    • Eric DeVolder's avatar
      ACPI ERST: qtest for ERST · bd24550e
      Eric DeVolder authored
      
      This change provides a qtest that locates and then does a simple
      interrogation of the ERST feature within the guest.
      
      Signed-off-by: default avatarEric DeVolder <eric.devolder@oracle.com>
      Reviewed-by: default avatarAni Sinha <ani@anisinha.ca>
      Message-Id: <1643402289-22216-9-git-send-email-eric.devolder@oracle.com>
      Reviewed-by: default avatarMichael S. Tsirkin <mst@redhat.com>
      Signed-off-by: default avatarMichael S. Tsirkin <mst@redhat.com>
      bd24550e
    • Eric DeVolder's avatar
      ACPI ERST: create ACPI ERST table for pc/x86 machines · 8486f12f
      Eric DeVolder authored
      
      This change exposes ACPI ERST support for x86 guests.
      
      Signed-off-by: default avatarEric DeVolder <eric.devolder@oracle.com>
      Reviewed-by: default avatarAni Sinha <ani@anisinha.ca>
      Message-Id: <1643402289-22216-8-git-send-email-eric.devolder@oracle.com>
      Reviewed-by: default avatarMichael S. Tsirkin <mst@redhat.com>
      Signed-off-by: default avatarMichael S. Tsirkin <mst@redhat.com>
      8486f12f
    • Eric DeVolder's avatar
      ACPI ERST: build the ACPI ERST table · c9cd06ca
      Eric DeVolder authored
      
      This builds the ACPI ERST table to inform OSPM how to communicate
      with the acpi-erst device.
      
      Signed-off-by: default avatarEric DeVolder <eric.devolder@oracle.com>
      Reviewed-by: default avatarAni Sinha <ani@anisinha.ca>
      Message-Id: <1643402289-22216-7-git-send-email-eric.devolder@oracle.com>
      Reviewed-by: default avatarMichael S. Tsirkin <mst@redhat.com>
      Signed-off-by: default avatarMichael S. Tsirkin <mst@redhat.com>
      c9cd06ca
    • Eric DeVolder's avatar
      ACPI ERST: support for ACPI ERST feature · f7e26ffa
      Eric DeVolder authored
      
      This implements a PCI device for ACPI ERST. This implements the
      non-NVRAM "mode" of operation for ERST as it is supported by
      Linux and Windows.
      
      Signed-off-by: default avatarEric DeVolder <eric.devolder@oracle.com>
      Reviewed-by: default avatarAni Sinha <ani@anisinha.ca>
      Message-Id: <1643402289-22216-6-git-send-email-eric.devolder@oracle.com>
      Reviewed-by: default avatarMichael S. Tsirkin <mst@redhat.com>
      Signed-off-by: default avatarMichael S. Tsirkin <mst@redhat.com>
      f7e26ffa
    • Eric DeVolder's avatar
      ACPI ERST: header file for ERST · fb1c8f89
      Eric DeVolder authored
      
      This change introduces the public defintions for ACPI ERST.
      
      Signed-off-by: default avatarEric DeVolder <eric.devolder@oracle.com>
      Reviewed-by: default avatarAni Sinha <ani@anisinha.ca>
      Message-Id: <1643402289-22216-5-git-send-email-eric.devolder@oracle.com>
      Reviewed-by: default avatarMichael S. Tsirkin <mst@redhat.com>
      Signed-off-by: default avatarMichael S. Tsirkin <mst@redhat.com>
      fb1c8f89
    • Eric DeVolder's avatar
      ACPI ERST: PCI device_id for ERST · 22874353
      Eric DeVolder authored
      
      This change reserves the PCI device_id for the new ACPI ERST
      device.
      
      Signed-off-by: default avatarEric DeVolder <eric.devolder@oracle.com>
      Acked-by: default avatarIgor Mammedov <imammedo@redhat.com>
      Acked-by: default avatarAni Sinha <ani@anisinha.ca>
      Message-Id: <1643402289-22216-4-git-send-email-eric.devolder@oracle.com>
      Reviewed-by: default avatarMichael S. Tsirkin <mst@redhat.com>
      Signed-off-by: default avatarMichael S. Tsirkin <mst@redhat.com>
      22874353
    • Eric DeVolder's avatar
      ACPI ERST: bios-tables-test.c steps 1 and 2 · 922f48d3
      Eric DeVolder authored
      
      Following the guidelines in tests/qtest/bios-tables-test.c, this
      change adds empty placeholder files per step 1 for the new ERST
      table, and excludes resulting changed files in bios-tables-test-allowed-diff.h
      per step 2.
      
      Signed-off-by: default avatarEric DeVolder <eric.devolder@oracle.com>
      Acked-by: default avatarIgor Mammedov <imammedo@redhat.com>
      Message-Id: <1643402289-22216-2-git-send-email-eric.devolder@oracle.com>
      Reviewed-by: default avatarMichael S. Tsirkin <mst@redhat.com>
      Signed-off-by: default avatarMichael S. Tsirkin <mst@redhat.com>
      922f48d3
  4. Feb 04, 2022
Loading