From ec79c56300c15fb32ad22596eacbdea0d218d9f5 Mon Sep 17 00:00:00 2001 From: Peter Maydell Date: Fri, 12 Feb 2021 18:06:51 +0000 Subject: [PATCH 01/20] hw/display/sm501: Remove dead code for non-32-bit RGB surfaces For a long time now the UI layer has guaranteed that the console surface is always 32 bits per pixel RGB. Remove the legacy dead code from the sm501 display device which was handling the possibility that the console surface was some other format. Signed-off-by: Peter Maydell Message-Id: <20210212180653.27588-2-peter.maydell@linaro.org> Acked-by: BALATON Zoltan Signed-off-by: David Gibson --- hw/display/sm501.c | 91 +++------------------------------------------- 1 file changed, 6 insertions(+), 85 deletions(-) diff --git a/hw/display/sm501.c b/hw/display/sm501.c index 8966b69bc7..aba447c18b 100644 --- a/hw/display/sm501.c +++ b/hw/display/sm501.c @@ -1558,89 +1558,9 @@ typedef void draw_hwc_line_func(uint8_t *d, const uint8_t *s, int width, const uint8_t *palette, int c_x, int c_y); -#define DEPTH 8 -#include "sm501_template.h" - -#define DEPTH 15 -#include "sm501_template.h" - -#define BGR_FORMAT -#define DEPTH 15 -#include "sm501_template.h" - -#define DEPTH 16 -#include "sm501_template.h" - -#define BGR_FORMAT -#define DEPTH 16 -#include "sm501_template.h" - #define DEPTH 32 #include "sm501_template.h" -#define BGR_FORMAT -#define DEPTH 32 -#include "sm501_template.h" - -static draw_line_func *draw_line8_funcs[] = { - draw_line8_8, - draw_line8_15, - draw_line8_16, - draw_line8_32, - draw_line8_32bgr, - draw_line8_15bgr, - draw_line8_16bgr, -}; - -static draw_line_func *draw_line16_funcs[] = { - draw_line16_8, - draw_line16_15, - draw_line16_16, - draw_line16_32, - draw_line16_32bgr, - draw_line16_15bgr, - draw_line16_16bgr, -}; - -static draw_line_func *draw_line32_funcs[] = { - draw_line32_8, - draw_line32_15, - draw_line32_16, - draw_line32_32, - draw_line32_32bgr, - draw_line32_15bgr, - draw_line32_16bgr, -}; - -static draw_hwc_line_func *draw_hwc_line_funcs[] = { - draw_hwc_line_8, - draw_hwc_line_15, - draw_hwc_line_16, - draw_hwc_line_32, - draw_hwc_line_32bgr, - draw_hwc_line_15bgr, - draw_hwc_line_16bgr, -}; - -static inline int get_depth_index(DisplaySurface *surface) -{ - switch (surface_bits_per_pixel(surface)) { - default: - case 8: - return 0; - case 15: - return 1; - case 16: - return 2; - case 32: - if (is_surface_bgr(surface)) { - return 4; - } else { - return 3; - } - } -} - static void sm501_update_display(void *opaque) { SM501State *s = (SM501State *)opaque; @@ -1652,7 +1572,6 @@ static void sm501_update_display(void *opaque) int height = get_height(s, crt); int src_bpp = get_bpp(s, crt); int dst_bpp = surface_bytes_per_pixel(surface); - int dst_depth_index = get_depth_index(surface); draw_line_func *draw_line = NULL; draw_hwc_line_func *draw_hwc_line = NULL; int full_update = 0; @@ -1662,6 +1581,8 @@ static void sm501_update_display(void *opaque) uint8_t hwc_palette[3 * 3]; uint8_t *hwc_src = NULL; + assert(dst_bpp == 4); /* Output is always 32-bit RGB */ + if (!((crt ? s->dc_crt_control : s->dc_panel_control) & SM501_DC_CRT_CONTROL_ENABLE)) { return; @@ -1674,13 +1595,13 @@ static void sm501_update_display(void *opaque) /* choose draw_line function */ switch (src_bpp) { case 1: - draw_line = draw_line8_funcs[dst_depth_index]; + draw_line = draw_line8_32; break; case 2: - draw_line = draw_line16_funcs[dst_depth_index]; + draw_line = draw_line16_32; break; case 4: - draw_line = draw_line32_funcs[dst_depth_index]; + draw_line = draw_line32_32; break; default: qemu_log_mask(LOG_GUEST_ERROR, "sm501: update display" @@ -1691,7 +1612,7 @@ static void sm501_update_display(void *opaque) /* set up to draw hardware cursor */ if (is_hwc_enabled(s, crt)) { /* choose cursor draw line function */ - draw_hwc_line = draw_hwc_line_funcs[dst_depth_index]; + draw_hwc_line = draw_hwc_line_32; hwc_src = get_hwc_address(s, crt); c_x = get_hwc_x(s, crt); c_y = get_hwc_y(s, crt); From 36144df315ca614a40a45daded8bc5c691fcc3e7 Mon Sep 17 00:00:00 2001 From: Peter Maydell Date: Fri, 12 Feb 2021 18:06:52 +0000 Subject: [PATCH 02/20] hw/display/sm501: Expand out macros in template header Now that we only include sm501_template.h for the DEPTH==32 case, we can expand out the uses of the BPP, PIXEL_TYPE and PIXEL_NAME macros in that header. Signed-off-by: Peter Maydell Message-Id: <20210212180653.27588-3-peter.maydell@linaro.org> Acked-by: BALATON Zoltan Signed-off-by: David Gibson --- hw/display/sm501_template.h | 60 +++++++++++-------------------------- 1 file changed, 17 insertions(+), 43 deletions(-) diff --git a/hw/display/sm501_template.h b/hw/display/sm501_template.h index a60abad019..28537a05d9 100644 --- a/hw/display/sm501_template.h +++ b/hw/display/sm501_template.h @@ -22,28 +22,8 @@ * THE SOFTWARE. */ -#if DEPTH == 8 -#define BPP 1 -#define PIXEL_TYPE uint8_t -#elif DEPTH == 15 || DEPTH == 16 -#define BPP 2 -#define PIXEL_TYPE uint16_t -#elif DEPTH == 32 -#define BPP 4 -#define PIXEL_TYPE uint32_t -#else -#error unsupport depth -#endif - -#ifdef BGR_FORMAT -#define PIXEL_NAME glue(DEPTH, bgr) -#else -#define PIXEL_NAME DEPTH -#endif /* BGR_FORMAT */ - - -static void glue(draw_line8_, PIXEL_NAME)( - uint8_t *d, const uint8_t *s, int width, const uint32_t *pal) +static void draw_line8_32(uint8_t *d, const uint8_t *s, int width, + const uint32_t *pal) { uint8_t v, r, g, b; do { @@ -51,14 +31,14 @@ static void glue(draw_line8_, PIXEL_NAME)( r = (pal[v] >> 16) & 0xff; g = (pal[v] >> 8) & 0xff; b = (pal[v] >> 0) & 0xff; - *(PIXEL_TYPE *)d = glue(rgb_to_pixel, PIXEL_NAME)(r, g, b); + *(uint32_t *)d = rgb_to_pixel32(r, g, b); s++; - d += BPP; + d += 4; } while (--width != 0); } -static void glue(draw_line16_, PIXEL_NAME)( - uint8_t *d, const uint8_t *s, int width, const uint32_t *pal) +static void draw_line16_32(uint8_t *d, const uint8_t *s, int width, + const uint32_t *pal) { uint16_t rgb565; uint8_t r, g, b; @@ -68,14 +48,14 @@ static void glue(draw_line16_, PIXEL_NAME)( r = (rgb565 >> 8) & 0xf8; g = (rgb565 >> 3) & 0xfc; b = (rgb565 << 3) & 0xf8; - *(PIXEL_TYPE *)d = glue(rgb_to_pixel, PIXEL_NAME)(r, g, b); + *(uint32_t *)d = rgb_to_pixel32(r, g, b); s += 2; - d += BPP; + d += 4; } while (--width != 0); } -static void glue(draw_line32_, PIXEL_NAME)( - uint8_t *d, const uint8_t *s, int width, const uint32_t *pal) +static void draw_line32_32(uint8_t *d, const uint8_t *s, int width, + const uint32_t *pal) { uint8_t r, g, b; @@ -83,17 +63,17 @@ static void glue(draw_line32_, PIXEL_NAME)( r = s[2]; g = s[1]; b = s[0]; - *(PIXEL_TYPE *)d = glue(rgb_to_pixel, PIXEL_NAME)(r, g, b); + *(uint32_t *)d = rgb_to_pixel32(r, g, b); s += 4; - d += BPP; + d += 4; } while (--width != 0); } /** * Draw hardware cursor image on the given line. */ -static void glue(draw_hwc_line_, PIXEL_NAME)(uint8_t *d, const uint8_t *s, - int width, const uint8_t *palette, int c_x, int c_y) +static void draw_hwc_line_32(uint8_t *d, const uint8_t *s, int width, + const uint8_t *palette, int c_x, int c_y) { int i; uint8_t r, g, b, v, bitset = 0; @@ -101,7 +81,7 @@ static void glue(draw_hwc_line_, PIXEL_NAME)(uint8_t *d, const uint8_t *s, /* get cursor position */ assert(0 <= c_y && c_y < SM501_HWC_HEIGHT); s += SM501_HWC_WIDTH * c_y / 4; /* 4 pixels per byte */ - d += c_x * BPP; + d += c_x * 4; for (i = 0; i < SM501_HWC_WIDTH && c_x + i < width; i++) { /* get pixel value */ @@ -118,14 +98,8 @@ static void glue(draw_hwc_line_, PIXEL_NAME)(uint8_t *d, const uint8_t *s, r = palette[v * 3 + 0]; g = palette[v * 3 + 1]; b = palette[v * 3 + 2]; - *(PIXEL_TYPE *)d = glue(rgb_to_pixel, PIXEL_NAME)(r, g, b); + *(uint32_t *)d = rgb_to_pixel32(r, g, b); } - d += BPP; + d += 4; } } - -#undef DEPTH -#undef BPP -#undef PIXEL_TYPE -#undef PIXEL_NAME -#undef BGR_FORMAT From f7b5c16182fcb90bd312c81d0a5f63926c1dc367 Mon Sep 17 00:00:00 2001 From: Peter Maydell Date: Fri, 12 Feb 2021 18:06:53 +0000 Subject: [PATCH 03/20] hw/display/sm501: Inline template header into C file We no longer need to include sm501_template.h multiple times, so we can simply inline its contents into sm501.c. Signed-off-by: Peter Maydell Message-Id: <20210212180653.27588-4-peter.maydell@linaro.org> Acked-by: BALATON Zoltan Signed-off-by: David Gibson --- hw/display/sm501.c | 83 +++++++++++++++++++++++++++- hw/display/sm501_template.h | 105 ------------------------------------ 2 files changed, 81 insertions(+), 107 deletions(-) delete mode 100644 hw/display/sm501_template.h diff --git a/hw/display/sm501.c b/hw/display/sm501.c index aba447c18b..8789722ef2 100644 --- a/hw/display/sm501.c +++ b/hw/display/sm501.c @@ -1558,8 +1558,87 @@ typedef void draw_hwc_line_func(uint8_t *d, const uint8_t *s, int width, const uint8_t *palette, int c_x, int c_y); -#define DEPTH 32 -#include "sm501_template.h" +static void draw_line8_32(uint8_t *d, const uint8_t *s, int width, + const uint32_t *pal) +{ + uint8_t v, r, g, b; + do { + v = ldub_p(s); + r = (pal[v] >> 16) & 0xff; + g = (pal[v] >> 8) & 0xff; + b = (pal[v] >> 0) & 0xff; + *(uint32_t *)d = rgb_to_pixel32(r, g, b); + s++; + d += 4; + } while (--width != 0); +} + +static void draw_line16_32(uint8_t *d, const uint8_t *s, int width, + const uint32_t *pal) +{ + uint16_t rgb565; + uint8_t r, g, b; + + do { + rgb565 = lduw_le_p(s); + r = (rgb565 >> 8) & 0xf8; + g = (rgb565 >> 3) & 0xfc; + b = (rgb565 << 3) & 0xf8; + *(uint32_t *)d = rgb_to_pixel32(r, g, b); + s += 2; + d += 4; + } while (--width != 0); +} + +static void draw_line32_32(uint8_t *d, const uint8_t *s, int width, + const uint32_t *pal) +{ + uint8_t r, g, b; + + do { + r = s[2]; + g = s[1]; + b = s[0]; + *(uint32_t *)d = rgb_to_pixel32(r, g, b); + s += 4; + d += 4; + } while (--width != 0); +} + +/** + * Draw hardware cursor image on the given line. + */ +static void draw_hwc_line_32(uint8_t *d, const uint8_t *s, int width, + const uint8_t *palette, int c_x, int c_y) +{ + int i; + uint8_t r, g, b, v, bitset = 0; + + /* get cursor position */ + assert(0 <= c_y && c_y < SM501_HWC_HEIGHT); + s += SM501_HWC_WIDTH * c_y / 4; /* 4 pixels per byte */ + d += c_x * 4; + + for (i = 0; i < SM501_HWC_WIDTH && c_x + i < width; i++) { + /* get pixel value */ + if (i % 4 == 0) { + bitset = ldub_p(s); + s++; + } + v = bitset & 3; + bitset >>= 2; + + /* write pixel */ + if (v) { + v--; + r = palette[v * 3 + 0]; + g = palette[v * 3 + 1]; + b = palette[v * 3 + 2]; + *(uint32_t *)d = rgb_to_pixel32(r, g, b); + } + d += 4; + } +} static void sm501_update_display(void *opaque) { diff --git a/hw/display/sm501_template.h b/hw/display/sm501_template.h deleted file mode 100644 index 28537a05d9..0000000000 --- a/hw/display/sm501_template.h +++ /dev/null @@ -1,105 +0,0 @@ -/* - * Pixel drawing function templates for QEMU SM501 Device - * - * Copyright (c) 2008 Shin-ichiro KAWASAKI - * - * 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. - */ - -static void draw_line8_32(uint8_t *d, const uint8_t *s, int width, - const uint32_t *pal) -{ - uint8_t v, r, g, b; - do { - v = ldub_p(s); - r = (pal[v] >> 16) & 0xff; - g = (pal[v] >> 8) & 0xff; - b = (pal[v] >> 0) & 0xff; - *(uint32_t *)d = rgb_to_pixel32(r, g, b); - s++; - d += 4; - } while (--width != 0); -} - -static void draw_line16_32(uint8_t *d, const uint8_t *s, int width, - const uint32_t *pal) -{ - uint16_t rgb565; - uint8_t r, g, b; - - do { - rgb565 = lduw_le_p(s); - r = (rgb565 >> 8) & 0xf8; - g = (rgb565 >> 3) & 0xfc; - b = (rgb565 << 3) & 0xf8; - *(uint32_t *)d = rgb_to_pixel32(r, g, b); - s += 2; - d += 4; - } while (--width != 0); -} - -static void draw_line32_32(uint8_t *d, const uint8_t *s, int width, - const uint32_t *pal) -{ - uint8_t r, g, b; - - do { - r = s[2]; - g = s[1]; - b = s[0]; - *(uint32_t *)d = rgb_to_pixel32(r, g, b); - s += 4; - d += 4; - } while (--width != 0); -} - -/** - * Draw hardware cursor image on the given line. - */ -static void draw_hwc_line_32(uint8_t *d, const uint8_t *s, int width, - const uint8_t *palette, int c_x, int c_y) -{ - int i; - uint8_t r, g, b, v, bitset = 0; - - /* get cursor position */ - assert(0 <= c_y && c_y < SM501_HWC_HEIGHT); - s += SM501_HWC_WIDTH * c_y / 4; /* 4 pixels per byte */ - d += c_x * 4; - - for (i = 0; i < SM501_HWC_WIDTH && c_x + i < width; i++) { - /* get pixel value */ - if (i % 4 == 0) { - bitset = ldub_p(s); - s++; - } - v = bitset & 3; - bitset >>= 2; - - /* write pixel */ - if (v) { - v--; - r = palette[v * 3 + 0]; - g = palette[v * 3 + 1]; - b = palette[v * 3 + 2]; - *(uint32_t *)d = rgb_to_pixel32(r, g, b); - } - d += 4; - } -} From 382907b10077ed4cff48d9afe219a023887c0522 Mon Sep 17 00:00:00 2001 From: Daniel Henrique Barboza Date: Thu, 11 Feb 2021 19:52:40 -0300 Subject: [PATCH 04/20] spapr_drc.c: do not call spapr_drc_detach() in drc_isolate_logical() drc_isolate_logical() is used to move the DRC from the "Configured" to the "Available" state, erroring out if the DRC is in the unexpected "Unisolate" state and doing nothing (with RTAS_OUT_SUCCESS) if the DRC is already in "Available" or in "Unusable" state. When moving from "Configured" to "Available", the DRC is moved to the LOGICAL_AVAILABLE state, a drc->unplug_requested check is done and, if true, spapr_drc_detach() is called. What spapr_drc_detach() does then is: - set drc->unplug_requested to true. In fact, this is the only place where unplug_request is set to true; - does nothing else if drc->state != drck->empty_state. If the DRC state is equal to drck->empty_state, spapr_drc_release() is called. For logical DRCs, drck->empty_state = LOGICAL_UNUSABLE. In short, calling spapr_drc_detach() in drc_isolate_logical() does nothing. It'll set unplug_request to true again ('again' since it was already true - otherwise the function wouldn't be called), and will return without calling spapr_drc_release() because the DRC is not in LOGICAL_UNUSABLE, since drc_isolate_logical() just moved it to LOGICAL_AVAILABLE. The only place where the logical DRC is released is when called from drc_set_unusable(), when it is moved to the "Unusable" state. As it should, according to PAPR. Even though calling spapr_drc_detach() in drc_isolate_logical() is benign, removing it will avoid further thought about the matter. So let's go ahead and do that. As a note, this logic was introduced in commit bbf5c878ab76. Since then, the DRC handling code was refactored and enhanced, and PAPR itself went through some changes in the DRC area as well. It is expected that some assumptions we had back then are now deprecated. Signed-off-by: Daniel Henrique Barboza Message-Id: <20210211225246.17315-2-danielhb413@gmail.com> Reviewed-by: Greg Kurz Signed-off-by: David Gibson --- hw/ppc/spapr_drc.c | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/hw/ppc/spapr_drc.c b/hw/ppc/spapr_drc.c index 8571d5bafe..84bd3c881f 100644 --- a/hw/ppc/spapr_drc.c +++ b/hw/ppc/spapr_drc.c @@ -132,19 +132,6 @@ static uint32_t drc_isolate_logical(SpaprDrc *drc) drc->state = SPAPR_DRC_STATE_LOGICAL_AVAILABLE; - /* if we're awaiting release, but still in an unconfigured state, - * it's likely the guest is still in the process of configuring - * the device and is transitioning the devices to an ISOLATED - * state as a part of that process. so we only complete the - * removal when this transition happens for a device in a - * configured state, as suggested by the state diagram from PAPR+ - * 2.7, 13.4 - */ - if (drc->unplug_requested) { - uint32_t drc_index = spapr_drc_index(drc); - trace_spapr_drc_set_isolation_state_finalizing(drc_index); - spapr_drc_detach(drc); - } return RTAS_OUT_SUCCESS; } From b88e0a57e6577f22620873d2363671b53faf77a5 Mon Sep 17 00:00:00 2001 From: Alexey Kardashevskiy Date: Fri, 19 Feb 2021 14:56:20 +1100 Subject: [PATCH 05/20] pseries: Update SLOF firmware image This is mostly compiler warnings fixed but while doing this, a bug in MIN() in tcgbios was found. Alexey Kardashevskiy (14): helpers: Define MIN() libc: Compile with -Wextra elf: Compile with -Wextra usb: Compile with -Wextra veth: Compile with -Wextra virtio: Compile with -Wextra e1000: Compile with -Wextra libnet: Compile with -Wextra libhv: Compile with -Wextra libnvram: Compile with -Wextra libtpm: Compile with -Wextra slof/prim: Compile with -Wextra Makefile: Actually compile with -Wextra version: update to 20210217 Thomas Huth (1): virtio-serial: Remove superfluous serial-* words Signed-off-by: Alexey Kardashevskiy Signed-off-by: David Gibson --- pc-bios/README | 2 +- pc-bios/slof.bin | Bin 968368 -> 968888 bytes roms/SLOF | 2 +- 3 files changed, 2 insertions(+), 2 deletions(-) diff --git a/pc-bios/README b/pc-bios/README index db7129ef64..c101c9a04f 100644 --- a/pc-bios/README +++ b/pc-bios/README @@ -14,7 +14,7 @@ - SLOF (Slimline Open Firmware) is a free IEEE 1275 Open Firmware implementation for certain IBM POWER hardware. The sources are at https://github.com/aik/SLOF, and the image currently in qemu is - built from git tag qemu-slof-20200717. + built from git tag qemu-slof-20210217. - sgabios (the Serial Graphics Adapter option ROM) provides a means for legacy x86 software to communicate with an attached serial console as diff --git a/pc-bios/slof.bin b/pc-bios/slof.bin index 448dcada367f32130ff6ccc6dcb482dcc3fa853e..3f3918a9e144e12f6e39fab6fc1c9ec9cf9d2898 100644 GIT binary patch delta 227085 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�kSx>?)g)|zzDj)9&8NA93Bvh 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

9)mV&fKq~*ZoF-a>y^hv|=6wLk5 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 K%OdV>#t#6j5-imK delta 225144 zcmdln(RxF#^#n8VV;j;lOLS8WEmBevQ!Gpk&C&`}b4v{-D>BNmDJZau3yMxG5MinC zx??^4!XZAf$@+{A8}BW$7eLmLW|W+^d4j_hCJV3990fyj1tS9^0|i4vD??K&BNJXO z1-Ed8u+*aB%=|nBTLpCcz`ARkH?fMzR3w${Ra;Q=~l4# zW@K>_4i5(D+{qH&eSF3pKNuMVeklGI^kC3ToV>+b&rI?nNQbS`|NoYnH47{q7#Kh< zut+vZ`02^O;K3l(2$Bbh)j#=NQQ!Kw!XnwEW3q&g9Fxg`$re6(Op?BnGkk)WOkPah z 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

Fk7MCm4oKb zLumb9xcD51Zw{@PexZyLbZ_5>5>7G3L(}C;ImMX{9RNp$(P6Yel!JB%52Nk&gNuuR z^)Ve*n^w*#CUqDzFaz=;EGVGkNQZU6%8U-9H9F)#t!D;4!Nai34buk`FPOfe0^G(2 zB?YF#ucil7bBZw?em7kKOhd;KjtD`-k4QnpkH~;~QcOpjpyF;&@jNKM49bUYqB^o> zxa0&3`j=1C#yR*8Xnhzxv! zM^VR8SrVXebriKWLx=}J8vjRgp!5VVEp-%>;y{gND~}7I0gO>3Goe10eC^QBXQ=`UfyS4N7NC|IolG#&o=FxI_tIv+_o8AECADZsa2a-QFeM23mnACAlcq$;TA%~>h6He0~fYhIGn=a7G zDaLeS7sUP(`yl3@I0P~O#4(6FPMn)wP!CdfX?jCDr(WH z!XF~ON(MAs2@>y{exaUIOzI>o&p_gb0j>|yt7kg7XZi$?e@~u*xbNgSi2F`L!|fCY zB-~DkK-8VmncmRIDaLflVfq1(zEeRE_n(S_gxje&NVuI!o9<8#p2P%G(Ek3ZGf-2W zKu!5GJ)r@z@TrkgOzJc!l0lw3IKw5KMLj5zB>~#FJ_{@QAbvrJ!!j0{Th5}@nlQJV z{Q%AgOy{H^0ewymoKTF;!Oq!2Gv^$rGXn}kh&Vh!oC^ad2(NRn_M!nOVKTtO;vB5K z2+@ZShpi_@S3e1yU>MI$=Wpc{XF4}y`hyluF{X2yz`{)Dwn3ue+&geoNSy z2{84L$@ys5QJgFZ*-(p7XXg>(YS8f^m_tD~bAc>Itp`{VVB%Kb05Cd_8ea&HpcjbH z^mE=19577hL#8J*bBa&TZ{ieZI^PBrTm(*xjOVBOw}XUNKmz~#A+Rvh`D2hYdj1il z5IO%0T!=88e*sblx<3wFwp?HX34@j$9%$nP-7Y%;MCm~y@S+hU0xvN^3aU$7kb>!w z8km;41RBahN@sDOuJgSv}}VRt7%7OUI^la*8os=7E$m zmqVr-baIMGT?Tcskd;HryUTgg6Ts>Vpz60wp8(=tfv)qpk}>@NNdFbkAX7AEy>R8s z^ba8QSEV4%yDA6q?o}m-cdtUc$8@yWDF2|1kYQ7pFKQ3xs`fK0x0!B2tGAnB5c!)&rYH1pib>r9HENb)2FER%=@Y>6pqo>% z>@>S|W%_|0PBEt2SHR9Px`Wmrgw0>y0aZgt!2lPZ0BM5Vb%C^W?-orD=;aiXx(n)l zf}$4^Y^zhCCH-CK293K1p!%TGR`*z@Us%j3#&k~t><*@T3Xsv)dp6SrK-KR(FGzKK z&ks@^-}?Yn|7&^ySpMJi3n2Qw$n*tZ+72Rq-wiA-bsse419A@}SFg^3b}8=1P3z|r zW4fOLwpQvs+GqyMoA-Btyd`dkHn#wm2F+uEOh@zW{V&rMdO5`nQOiCCd1x#70czQY z5a$5*o~0hZ$~1_h8RVh;zXwXw9cnnmm>#G=)q&(ekprSZW3SMD>jSIl0TV##9KhER|w+&tU{iW_mpYtt`G;S^(f_-xuF5cLM4=?6GL zNj(w)c?glPrJw_*k0c;XhDQpJCc`7>9Q30UaFan=@DZpyLh__Mv~&6B)btHqoMKFm z&OmyAk42^%OagB_0aFpv3np@kGp0?u1sbDyoHt!yBBvPB;{vc^smGwMD`=Fxy@X9kK%xU7 zz6Y$0@dU*7mp334&&yXJPk^>9Oqjtb#`KC|y2Etvq=>+DPH{unK4(}EgVHSnpWrJH zA32C&;?U)quc5uD*Bam`WP0r~U126T2ZO1e=?ybE#hBhgDkY=0umK{FsSFG(37~#G z1E1hqSaTfW6NLB+h|@ppfSCUA1eE?Y{lh#?F{V!(;I#`5b#`OBtn0P|N(-vH*XoBjaI-vCJpUynfC@%0A8+;0ri9p-Y1 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ν zlJo~f5y)DQ^;i9Ydci(W za}bozLHa-uj3jRqFnz&3(C{B93xMR&N@p*S{UC9)2sX-?eqkS%SP)EJ6yzBsbD{gc zghfG~M-qn>f})_*jU*0BFro_Ja!E)OExLUhrYG!&28xy_T7LEirA`JuVNsALPy%K8 zf&HL-4iX2+qh)2o8`D4R=Ms~ITaFgJM$_dFaET|u600bvY(#Q1+%ISm53A`!K{*sz zJxD*u8E6T?BVc;N0nqRmD5rwtAw5YUQBc?;>kpXz-~hB8q9qDS07#O?FwJNQ05lMO z5EKS5%h3{mvB7kQgP`gcl;lB{e*o9Mrp5|avmIzbFA%bIaaH#mftEENOA7LsnzaQ7i-)H{ixMPVSwDv+~4 z&O>n)D68`ci-GbBl3|7)rXK*g1y+}fp~an1!1ND?xWtTnLBRwv7cH(}#gQ1O6h$)E zYsYkj!(3ugfgrzu^nprcBzdEZ=>dn4>R+(~;B-E{?J$>sl@}~vK$#Rp6VwwR#~_Kr z(yJJxTQdFGVJ-nFm?7dIJxGc{lb=Vp#1Qi6InrXf!x3okYKend>PVUcK}nc_Pgoq3 z9Z`aJ`hp`!<-a&uj)VoTI9dS=>d1f`V+`^s$XrlCjAWnbglR{SN+WSlqC}Do1cf?C z8z{Ds#0@`8H#o{ACgl!uE+{~es8d&>89F*sfv>RDWS2)HcW@HAk9%KzhUIfJrpRhQ{_sIGbrUx8@MuDa{s4zp4 z3<6~bkYS(Ty4=DbT z)hA3(H~}jBK;Z(?2N@8bKJ5gTfKf2aGEgjHGYmZz1EzmC0jlpo5d|^~Eh1sng#=m^ z8hRrZgv>+K~cw@T2DK0T73z#E7(SjszykfcoNFLVSmjp#8lDx%)=>?}i z*$z|)gX{$_^%k4H>=c)PR0zm0kRV1}O*_pc#szCxN^Y3G;5?U@kR)1VXuM*&!D&#v z21=qJW6 zObQemNFIfCkfqRK0~Rn+p!9{L-r~aafHOz|BLy8iXgk9tz!WMleZv`~-ntZ885we6 z`U8+Wtc;aHDz$Yw?7JEh+(+`~E65|Sm$wSrwYDt6qie!HnC^dle zgHi#i{R-zn*#uhpNQ1H$l0M^v=>g|Ku?-3XkbX$1=p+rw0Z8h?KoJd+2W2A^^Fbcs z6P8AcNQ({AH=O4ZmjoFD(uNk5#s{W9I1dfWdTF$FOc>0qpb`K4BS91R+Vo93cZ;EGUDPJ;Ol>0i+KU(I|m1J>epkm{bTf@ydYA zM>5yQV)}%ONPdukOes!3c9BaUDI660AVWdXf?_Dd4>F*TL^8|*W(g?Pk;Gw>6EbMA zZhT<6!X;?5YRRC*c{nr)%YdRA#q#M5m$<~NU|B>46zxcs!3ruFv}g~9CKDM*#poo1 z7R}+H|Tt+moWYDTe#|6_JE+a=MT6~9rjAP&vmW7NFYRRHS zcsMBCfaF0DjpCf?3odhsNx>4GEGWW}y&o|B0*X9(gl9~h2SVS@x7CW+Nu^jpRgP#FJf~GTC9V{(5{14yMoLCxd9aW zNan!<3N5e0VqFfB*R|x(Vm}h39%LRUmQma>UEv0oSQ4yCmqUwaxHwv7hl_&}0J8gF z?ncY}Mi$c>Zg7c9f`XiZPgou!{-an zTw+r8(2ORJ7UjktrW=6dVI5O>j3}R;aEnWf3$`&t9va2+Xi*#m(g(60Es8A#rXRS) zC8iVw3mi~XqBswdE#yCd*FH>FyUit_1WRY2wlDG+Fw7AO(8*B+P+mg{t7uTfGVlp2 zfHY#UL;)?Yx*1I0a2wR#g_gbwAR5U$6OQQ*ZbPTWq7*os)7m^`{H>M}t?n|C20md$Q1oGOlpZRxX&eK6b?#>AbC)m6-geh4=oZ+GNv!M4;rYQ%EiH?xMTVRA#O1yMd*AB z+XIk`p=F#RC=ju^7%c{T1*RuF;1ZKE1&K582`ho}2#QOlPk6v3CTRjSR|zff!>8|m zz$Fg%s1kbM&zSz<0hbsTY^$h}1=!8g)gE#QfVO>e)GL9~J(7j7pbQUk2#z3E!U%GZ z20mdWP*O%R2ks$Ifrlgx3tA;eluUp7kc-m@?mM*11j@S%Aje?D&vb!DTw+QlAoU=5 zPz{D;3EaDoD4Oo}2JlD(g#ZS$o{!8J>fBz*z|cq+#J)VJ%)OwUKuU! z;y_UW(vBnUlyStJGLE=Y#u0bQkhnwi{Y*AY4|u{QW)uOE06737zCbSH6IMpgPba1~ zJOL$7X!Bng5?@Tp&@A=r370^995jlQF`@`+C@AY71(q)~%9L?LnF>afLCjGB=|eKd z1QLnUOP_KH8ihk+Mg>%2ASr^yqzXn%PG9g8$!98%jK`z`E#BCkaS2GpgDhs?6IKD$ zMM#B(mBMs`XIx@l@lcs3GziYy7rb|9aE;tI(Uf2ifEppZaPp8$#@20md` zPzJ)L9xb>NKp6(49#p$9G9Xf>_k!sHFF>ZOTq;WXi>?N0gRRYMPAcuou1}TJLX-gF?24S0o zRKcg2iq)%vViL(?a1W#9I#>XLw@)Lfhn@v1tOkl{BypHW)X;Jx%zQOaieP4#{`V!Q z-T-N4;1gB@#U3_8(2@yg9_JM(HGm3EkUmgyLDqL-dH`4+WFAN!J+)*^Z+Hbw<4J0u z5Jb|P016S1CLE=&8d?&8Ey_|uOCr$obcNL*gX%(RXh|foW4gd=F0p!8-cdt~@6HBczTND@hL16W(x%G5OD! zKH&|Qm{bxdKpFUi)j`E0iv80+faLW-0RWOm%VTyC(-q!wiAllTgOui7Wcs$ZTmn+ivzdj#R|6u2V3NV~2XCR}v5-2b1VNUZ zFVGU3yBk50u7KPyZ1+l3Ib&QbJL-T?L zh{jZ3FRX!9^d*DRF~~unV8+xStbvwZlR?1@QV&W`$m&7rK;mfWHyM;}LE<2qak|b2 zE-p#fsuK-R)FC^5y8j0*@p@Rw(m)GKSW`d)EeXR~ZyKPajAR_FHrE8DY$S0LP#81t z32TBX+mZkqBPNxd@{&lkb$72jua*^kD%{>O$H@pkb1PF zpL}Avz(+1Isbo+Xg5=T4q~sIR9X`TRnkJ}VLULqE#PouXTw+#mOF@<($tS~n4T>ma zaZn_HEQ5|tYJwsbNj?R{2g!pRh2pvC7d}EOBP~r(>>_D`MTsWJa3t}R71IqqafvaR zaZFG61TA_QHK*r);}RFr1cf511qVKHiFv`M7`4!%%NE3E;1kwDi!E69SPN3Oz^61! z6sCWG*{P+47KN!G#UR5lqHwyxXJkj9MHy@~P79RZkUZ)GGY>5ajVz`IpqPgii?D?& zTA*x+WS$AgT_E>?vMG|d*^TK9pFty5Aag+SkSTX9El@T^QkM#H2S^@N3Ze$`hR>j5 zlR?!5NFLO(Led9oA8LX6-q^%J4Gtu6PiQLBx&dCgFZCGoP?F$R;H9ptD21aEV#LEYk*s7_vMl{esLxi$R!+ zwFAH|*3w2RAmQer#fY)Q^n|Za$7^Y$WwtbshiASf1)Ofun^ zZtw%N%@pP`P^LhVH*1)l@PkXt3hok6EFsCm+Il+Zr5-ei=|ESF9s9v0FuhKen?p+n zl)aElfGs@&-|CAbZn$FlhaX>(DN74rC}#OBa+Zkkq9^v%4-@1p3dI9`KV(j48ul zdc#koooc!c(*rJYiA~@3lS@D;0~%JkXaNuFjp#xrzID-ZLIy}Z1D~)iC?{ZvNL{qD z$zsEFfnQu=2>U?Mf#eCeeUO@Gy4x=hz1+pL1_`qgATH`|pn#FWMSr5q^Sh1mp7IUz%e?3TXH+`!lw_uVU zC>oJ8XM!{_@CoaI@);IK=z$V0l6qJbsfU*J;EwQ^4&GKg?KgB!kd_`=+`?6Y;ugtd zV~Ob>euMS`fT9EBBD6R(mYA*p%7mbG+**2|ut3tB2~B8vAk8S=nBMRQX(xsrTHF~; zU;l?oTq+pkdyt)=C_ysTC}aAAKcIde$hRPQw9Exs%Kw*3ObNEEP7f{0V4YGu$Qs(| zZhyH1q%uL4Fz^ZMgW?6%tp$I%#H2DoQ3R4lD;h!7&R?VvZ+*ywRlPo16lFm@qYnxb z6!SrG%_po6DjktL3AYcF>5#->QLT?wI>NeD`jCj7&ijvxQ_2TqD9F*E;sVJK`;6%Z z|BymZA1&vaa7<752l5m&g!Q4V3haA=63wI*OW9u)A%6IsR|rf>Mq zC1#WfN+t|^!Umw2MDhe|PqG18%w|SRe}L>b14ztH72_5#$_AMMG7Cp+8h`>G$&PG= zsSey?O7@@(0@8*ac~Gw!K&mz&15kJ%X*Ud*x_}#evMWcFK?ef^viGu~abN&48%r=5 zfZ_(pEZA;o15lg!e1WR8AXn7KrzQEUuAZdfmbsB*350W@+hRguE4={}p z6l@?vLH-BjNNjEeMKzKkSr*d|FmfaIkAW{BL6Qe8183wGK{*mhJnO>r048oRu56G`K=P0+x6|90xCOj&K*a(`5R@IUxEy@J z4w7N8#ApbL9VBt%57Qqoaf`vrHbamjk>o+kz?r$lq%uJ%1Y{pt!!oO2x&t#bDQFpj z>OLgRIUvJ8nm|#G;>hU>n7PH2azKWG+;0LfhFB}&4evjZi$ z#heU5bt95|4mA0KcT}L*3(2X5XgSqLVR`}!x0n&Ei~}DgZ4yutJXEU>^a0+jB|8%5J37s zF@huxz1>&X2(lkk3tX!p%Y$Mbqz_cKq6EtH4Iuk+K*bG69xXqoKvS9#TI8mH@+(L^ zWTV;iXRO=;R=J=|4-y2$D2gSJkO$wmg6t@mA<&~;+}OAUjB;T<1Qn3j3_*+T+=A%~ z*to@{;4VeWwJ9s6UtohqgA;gU7}*7&w7|e8Yz&GHES7=WM@Z_8ET$W8*-%N^keMY0#e{q3UUEjgc=)6{{S*61r!V*c~Cil zWRhXPbOjD>F)47W1IdGO6Ow!i$MgUWsJFF@(PA$Tlo~;rFtg?c4sNj|*q{aY`W7TZ zbD>$<7*uj1iNh)_@O~mBadnYG;?w;Xaj^>-qeZCUhv^QS++s&l!P&ji(5puCTyICsVL0B&wXx61?+ut@UY*aGQ;_JF|m%pl3ITqw*P^4oCKU0iIpFV+?TZ{{C8T9ytW4zn~QU%b!1rL6p7&iR_ z$c3=N%oJ3HBRL}V!gK{bZZY`IUsF(IBFV%0d*A>>5ue_`$1TPM8x=F-05=JQ%s{mj zs=5b!++ta=dRRGU2EK(-Y z(gZ+J0t!k7K4CLZkfTP)0Rg1Osu@TflA)#trhgECy3WZAEmOb-gv>#~hNKA=zviG; z0g||h!t?+^q+-z=Eq;tYOm7h67UL=aWl9D|JWk&xh!lR{%W04dH42#iK#*I^ z2o}EPpkfV09^^VcVRQ7{5-?pr2-z`c@nZa8x&uhw8|E0a;?u}tdVvtPm=Ua4GzS%< zNcO^tMRQP&LK64yn7%-WTg(cUNWi!JAjyN<5+KimN;D*Ka8nH=z5!gS2$`c*u6_%q z34BZ%Brd>r>mmsCEO@!XR<9s5Wbu9v}h=8<2XCJSdD%t#3e)M~i9`h3OkaxW$+ZS4@8(!i_ki z&H}Aagp~&t3&76T1Qmlw*1&?^0xjljIi@>^a>I|swLptGACKt;qM&>aiZPJuK{S%F z;8GSO{s3YtMnplw94+%2DNMg0iWHcZXqgojn3ibmA+v^QVn|^LzLW>aHK5ZQ#JI)4 zdq z=-l<`-^92DVJBjPZ?Qo#0JP*n99o7=4-@AW;DW7|x10ekDyO%Ja|=kpN;6CJjHfVt zgE+{?&{PLr*@tYr!t@8?++tkt0E0A9ri)2%3m6qclcXi6T*Ze_$Vl7AmpRg6kxk%!$ zW|x%(c&~ww6lD;1jEn^p=9uGVlpoff}pW+yF`sNa}TFOrIdhEhYt< zHMBy@g_af54@h#0ag~Dn3NjZwz9&BYyCgTiS1G7H0}=#Pir6eei&S{{q2*DNjOhVV z++x$?rgCveS)nyT;WmR~SbTcB6gR(7DM%5>W*jjLzO4t51tJK=QELRjfhLgk)~1 z!1N2!kSOKQvPR2`Wgx{MOEKbfx`7N*va~J$rE4flt^LR9_*P3tKE_ixvm^3DYMiaf=yMfPx>S50uD|^??!*1D~)R z$fwBmOql*biCavn5>zmN8ulIuK8kv)o5 zI;3h$H&6v77fEgoBRf#0Kz0DA0%zb8wg4MpntJRpVgqCWpRhg1!$|7OCQMgQ;})xj75DaNsjC8{9%K(FV3G8}x+nIaSU?gl zg{cPxAd+|$s2Ty811e&X#Gx$&W?}mda9hvI9#n86DS#E^;6Xkl@p5Qn*rUa08Aw0K zBFKnBy**kDT?O(8NFG%7BLygI8Hhbv^BL}NP^2T-4-WuPiGm~!OHuZaR1gebid6-Q z0FcF?7)R1j1|0A&v(X=s27J3uy;*E^uq6;&X2 zG4KgHfFcCR|K=b*NE|IeRf7@|NE}2XsfVp+1W&CY*b0}WUk zK23vLpdRdQkUK!`K~f3pWjTPt2}vB*ymvs0KDc_c=!2yX2ejyexm?&0E#e$HrhfoA z5wv!O$q{lYPCdAnkK~GKXts9*#S&6%z*4UxDElL+uLM;>41B_lpx8qahqf4m(Hq_1 zi6D@AP@-gJm>#Ri&8b)cvlOjt@PH;k$LaQqxWt7V(Xzb#jOiORK^-4ZmIs*$G6u;F zplLynJgh==1eMvS@&a1iVp7#0b3yvi%4mCy=?+@3I4#rS7LbH>^&HXiu*3BETHJ_J zE*;UM98~jxEWn8J=@&o_fJLz*S`^!MOw$H+>jS16XoLI-P5Dls3Khv84jt1Iv|(LZ zC&+Tz>C?2i1-xpY0q6vZH7v2|gcfTxFdIPnkZb^re}HTNb!D}jK#GtgVFi*CC_^HN zgEl?taEp1tsyZi7G$F~u2E?4uq77DGJE3Jw5W44nC_qpiMs+_ zZZYtJH6~|BkvV;tF1LVGEvUR_;1hNRm5WF&_IH@3$1NsR2Z|byG{|E}(x8)Y!SbNI z0+L6I4dWHl6ZE*nIAOisVROKPbgT_I&j#`XdVaB(-k{Gd#s%w2 zI79AKn7&P)TR^G~ zAEp-=AkA*LfbtBIys^ae1qR$=Ua;ipf}Te}DFEayP=q1rgO!9Xpg=$pPgaaOEpk*f@}u40Lcb7gXtd(xy8I-HI@r{u?C76kUmg|AnAim0JxylSVjud1B_sK z#1%4}Ful!)TR^HF6n6}K!mc11HLf=pfl5SB9DwA};xh5Y^an=VVo9*Is;=m9333@o zA1IR{xezwC?Fup%NgTFB*A*>pjXz8mFy7v^cM~m|kEEi`!+!+yY9l^2Zge?t-N{*A3v_wva1Y+=K2`HU^hZ(@cSTO^>s0K+N%r9=Bwg!@TQpfZUAjiS=SwI$Ks+n>_4rv#1LyJel z57Proxy9gXn8DZ4Aejhi`hw(P>A(#w-arHGAbHrf4>ydwI{kquG=7-eW`Ki!x|kWa z06ZnSp~Vv{VBJ8a8j?$3xf^^P4U#x454oY`RU?Jz1!l0y(G9IUZ3JZ>P(*=}BesY_ z%aDx*)6BWWlwiJeM~lY>P^dES3A+nS|6s-~KHc1$n?I=uqzEJk%8E#K!1|f)pu~dY zktR^q1E~iYhNK?W&~!)3YWgpxe=z43lWGDLqab~tEP`a7@rUUO7N7*ZVtRlDXn-1K zK3WzsmYCiEl82jvR(ygMHd=rNSm$wZ2)U!hma)Y22NvAolA!PfxdD_bklX;e#?=xu zO$5>glD{xL!IE2C60LlM#i9EPa1AxR%#vFG;V-nfFyWZKz!DmY)C`{jA%PlsY%?dQX0Sal5Vo(er8PX6i-M|W|3;l`~zaF3nLXw8%UJtYg1Kp-*#SK1);seNf*f5RpELWc5$Jkc^yi^22@Hr!(H&3)k0nvu+h)k~geaRMtbJ<;L>HWKa$N>|v-0rixS z#7#iyk%4czsV%o4e1n}QS_C!(Oi!@o7UP0@2C~*J3Vc}%l3^_%OBwitJwZhwQe?nN z5KmBZ1X(?(SprfIqLI{lFPN@i$1SGR0?KwEc@T}HFB%jHAaQ727G}pSAk_jY8X5S6 zy+ARDYFL9Eq*&Qt$1NrWGt>(d^GJq*4%)GUW>Y6Gv>et7QVcR26n!X$gKXmy_5zhv zNQSjMnC@WDEye|lCa(x^(@@9@ExODarZ2FEIPL;SJ#2%E7kK7LY&x3*w}4SADDFX) zgE9s-%R#}7WO-@8^aKaEPtd}=6~qS_h7smapMWwFl3`5>(+@asizQWo5)McoT1GO2 znFk7fY>q=K4O>CxGw=y}gRDccr`2G(f+N(?_12nqaf?Z{LUW8aT8=Y3FulMD8X7|0Xa#2Ljp+-VxW%}tV4<>N`hh@h zvFX>GxS{9Wc%xNoZ6Fgs&H%MJP@DmZ1wLVKP+~y#9?V&w$U+i_m3H1}i2&A~0Iy_W zMmm|o@WAv0XKpbmJCK7I_=J5x_8}SAdSm(oXKt}1SQX=g7V)s5UGPK?l0Mk*?!aitC7g&1ofkd;D4|+6% z!UNTRbTh zlm|f4pddw(hGi@tP=-VjhxPHmH{KwL!{X8hEsh%krWd#(Ee7!c`3*@QZ2ZsX1EgiL z%oVhF7-R?opD_5w8x+OUFSvrbL!gWZl1GbQvm4XgK+>S_1WBVsr%}dq12^d8VU#ag zoVG&~wJ#_xu_S6=P-aGQOFJk$L6)H9W&0V^C%Azk16r&2La)&PUs8jlA2uxE3(6cw z;wBc;KY;YZ8il^l*(No2ZULzdXxZ%xax97?rw6zr)keM`#~~RC>c_Z4`ytb}flPus zAC!lYR2m+b{=l7E%nP>c+!quTNb<0B0lpIeNgS3ge9_|9aK&^74{k9fSf2I+C1E6e zFnj!<-TX2SZUL_jP-0}@6ZQi|Ac{9Zy7`2`_njaa0!w^;pmc#G-ViX&lUs}nZU^Kb zp(sDJDC-18ImkLty1`~0S`@*CXZ=9=6UjPTgXt4Ik#_g^p%ufh>KlAp4U#@snEHWY z6-gYHH~bbrj+*=C$t~d33CjE+$AZEL$+56jksn%wc7h@hq#i^gsrOzmy}=8qRpf^j zad5{%Zw=e#1!@(6nobOS!r;4OkX#zIWBLOxSo#w4Mp~TY4~jx0l{zz~J9u-8Np*s( z1DS-D4NW+v7l7mqKxHOK9uzl7`a$c7yt&1!V0EuQdR&6S5Tp;JAH}|Psy>Rv87K9wd7XT^{k-XInvYCNT7<@wuipwF znFDLW1)ybN*f2~0WG(`6Xjbcu=@Q6BI=OG=&n*zt4Kf1c zR8WS+=2WzphC3B4rr}P7oH8|inm@OI65K{mvP1G0EZYS9fH?1%Ker%kf;13X1b_4A z7Vzo@r56T1;XsTe00~I&T{B1q!vdRqXufKd-9 zJ%9v3i4;o^1fs=mYr*sf0o-C>OgKWu5M7`1j$3@{iiPrP1d0MALs|=_PY41H*nli$;1do)YZe(POg{jUhXq3rC{B^| z+iOh!5Cko~wSqu72uTt)1P}y@DgHtOQEn)P6yve{P91IFpl;E765Q@}a3`R>3pi3e`xy6)v zK*0^tkCv%n4WMAiFqBp>TH5FXsR!x9$k)>q!nnnPV5LwnS|tptCxX$E1+1P32IVd+ zVG;~&Be#Wd3mEl*G=nS$#XX9rL7~GZ91IE+BtyD5rauTnD!GH9g|t{Ww?KU#DAqxS zfnpb%VQ7UkEI|h2i0xps*oNhjVC=CyeQ7wipj00$8bC=2+2t#yUkHcAeF&%~Lz3(R znaIE=90KZxptyWm1h+W&b{dc@sQZVc%kaQ-g9vC*AQXaD6tv!$o)Ez;rUY|O2wJrb zE8{}~Anny@5!?b^{UAd?Hi6-h09H0+9R!P=tWwL75N9gT^1GFNoq6;{q?R1Ia^f`O^voWf~-P zutAJakcW}PjXz9_<`$O(iGp;a#evR@=?2lDx&Ty6faF105Lvgu^n_^8E((}_P_!V) zLz`H_p=i-!7%+VT$XZaQ0vQVma3pQU2Gb9Ktc8_Qp&)fg@)J0we~1PRki!B6QfX?1 zqQ%GrP-+F44+?zLKn;lD7L$V2m!W9+ZUV>jh8S)!BUrB`6fK{@N}Nzou0V2^;eqKJ zK<1i)A{k^aC{mH+K_hc9(4{m&;5%=SBqwl87l=jjR2XCp)pWO5ZUL_eAQv$335S8A z6~!l@^ui|`28sYA!(cuOLn})sa73J>7-Y5N^t3ocgE0&;a6f%o9JheiM3B2c{sqM- zHvfW3QY3?6`8*61(@5fm2c~}jIT&^vU>I6Vx89hp5YH_pH31Z^Ap1b!jHJJ7#q@x9 zSfLmO3N$3ii6Fxm_=Lkjae(5;=?(GRVoESafiJ^B(g$mBhD$(}rGpPaN0M*7F?~Zk zx40zKP2nIKNxEyr^an6EIfbJ|@FY;>3vv@E08!ioawMN{I9d*FEtu|*z%9lFcT>i+ zr(9yw%M!Q+q+r=E9IfyKC87kRL==veeRXC`zmUK!W&}$G;b_?xmI}f_mgc1~&pD6)|(18oXT0+ll#xj2L((6TUSRY@{vToa@TWGE

wUtSK6a7JKOm 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 diff --git a/roms/SLOF b/roms/SLOF index e18ddad851..33a7322de1 160000 --- a/roms/SLOF +++ b/roms/SLOF @@ -1 +1 @@ -Subproject commit e18ddad8516ff2cfe36ec130200318f7251aa78c +Subproject commit 33a7322de13e9dca4b38851a345a58d37e7a441d From 66d10d32ace18da3eacf2d8ee72c6076e87f9e72 Mon Sep 17 00:00:00 2001 From: Daniel Henrique Barboza Date: Mon, 22 Feb 2021 16:45:27 -0300 Subject: [PATCH 06/20] spapr_drc.c: use spapr_drc_release() in isolate_physical/set_unusable When moving a physical DRC to "Available", drc_isolate_physical() will move the DRC state to STATE_PHYSICAL_POWERON and, if the DRC is marked for unplug, call spapr_drc_detach(). For physical DRCs, drck->empty_state is STATE_PHYSICAL_POWERON, meaning that we're sure that spapr_drc_detach() will end up calling spapr_drc_release() in the end. Likewise, for logical DRCs, drc_set_unusable will move the DRC to "Unusable" state, setting drc->state to STATE_LOGICAL_UNUSABLE, which is the drck->empty_state for logical DRCs. spapr_drc_detach() will call spapr_drc_release() in this case as well. In both scenarios, spapr_drc_detach() is being used as a spapr_drc_release(), wrapper, where we also set unplug_requested (which is already true, otherwise spapr_drc_detach() wouldn't be called in the first place) and check if drc->state == drck->empty_state, which we also know it's guaranteed to be true because we just set it. Just use spapr_drc_release() in these functions to be clear of our intentions in both these functions. Reviewed-by: Greg Kurz Reviewed-by: David Gibson Signed-off-by: Daniel Henrique Barboza Message-Id: <20210222194531.62717-2-danielhb413@gmail.com> Signed-off-by: David Gibson --- hw/ppc/spapr_drc.c | 32 ++++++++++++++++---------------- 1 file changed, 16 insertions(+), 16 deletions(-) diff --git a/hw/ppc/spapr_drc.c b/hw/ppc/spapr_drc.c index 84bd3c881f..555a25517d 100644 --- a/hw/ppc/spapr_drc.c +++ b/hw/ppc/spapr_drc.c @@ -50,6 +50,20 @@ uint32_t spapr_drc_index(SpaprDrc *drc) | (drc->id & DRC_INDEX_ID_MASK); } +static void spapr_drc_release(SpaprDrc *drc) +{ + SpaprDrcClass *drck = SPAPR_DR_CONNECTOR_GET_CLASS(drc); + + drck->release(drc->dev); + + drc->unplug_requested = false; + g_free(drc->fdt); + drc->fdt = NULL; + drc->fdt_start_offset = 0; + object_property_del(OBJECT(drc), "device"); + drc->dev = NULL; +} + static uint32_t drc_isolate_physical(SpaprDrc *drc) { switch (drc->state) { @@ -68,7 +82,7 @@ static uint32_t drc_isolate_physical(SpaprDrc *drc) if (drc->unplug_requested) { uint32_t drc_index = spapr_drc_index(drc); trace_spapr_drc_set_isolation_state_finalizing(drc_index); - spapr_drc_detach(drc); + spapr_drc_release(drc); } return RTAS_OUT_SUCCESS; @@ -209,7 +223,7 @@ static uint32_t drc_set_unusable(SpaprDrc *drc) if (drc->unplug_requested) { uint32_t drc_index = spapr_drc_index(drc); trace_spapr_drc_set_allocation_state_finalizing(drc_index); - spapr_drc_detach(drc); + spapr_drc_release(drc); } return RTAS_OUT_SUCCESS; @@ -372,20 +386,6 @@ void spapr_drc_attach(SpaprDrc *drc, DeviceState *d) NULL, 0); } -static void spapr_drc_release(SpaprDrc *drc) -{ - SpaprDrcClass *drck = SPAPR_DR_CONNECTOR_GET_CLASS(drc); - - drck->release(drc->dev); - - drc->unplug_requested = false; - g_free(drc->fdt); - drc->fdt = NULL; - drc->fdt_start_offset = 0; - object_property_del(OBJECT(drc), "device"); - drc->dev = NULL; -} - void spapr_drc_detach(SpaprDrc *drc) { SpaprDrcClass *drck = SPAPR_DR_CONNECTOR_GET_CLASS(drc); From a03509cd2baf48b1e947d9eb203ccb95bd99e5fb Mon Sep 17 00:00:00 2001 From: Daniel Henrique Barboza Date: Mon, 22 Feb 2021 16:45:28 -0300 Subject: [PATCH 07/20] spapr: rename spapr_drc_detach() to spapr_drc_unplug_request() spapr_drc_detach() is not the best name for what the function does. The function does not detach the DRC, it makes an uncommited attempt to do it. It'll mark the DRC as pending unplug, via the 'unplug_request' flag, and only if the DRC state is drck->empty_state it will detach the DRC, via spapr_drc_release(). This is a contrast with its pair spapr_drc_attach(), where the function is indeed creating the DRC QOM object. If you know what spapr_drc_attach() does, you can be misled into thinking that spapr_drc_detach() is removing the DRC from QEMU internal state, which isn't true. The current role of this function is better described as a request for detach, since there's no guarantee that we're going to detach the DRC in the end. Rename the function to spapr_drc_unplug_request to reflect what is is doing. The initial idea was to change the name to spapr_drc_detach_request(), and later on change the unplug_request flag to detach_request. However, unplug_request is a migratable boolean for a long time now and renaming it is not worth the trouble. spapr_drc_unplug_request() setting drc->unplug_request is more natural than spapr_drc_detach_request setting drc->unplug_request. Reviewed-by: Greg Kurz Reviewed-by: David Gibson Signed-off-by: Daniel Henrique Barboza Message-Id: <20210222194531.62717-3-danielhb413@gmail.com> Signed-off-by: David Gibson --- hw/ppc/spapr.c | 6 +++--- hw/ppc/spapr_drc.c | 4 ++-- hw/ppc/spapr_pci.c | 4 ++-- hw/ppc/trace-events | 2 +- include/hw/ppc/spapr_drc.h | 2 +- 5 files changed, 9 insertions(+), 9 deletions(-) diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c index 85fe65f894..b066df68cb 100644 --- a/hw/ppc/spapr.c +++ b/hw/ppc/spapr.c @@ -3654,7 +3654,7 @@ static void spapr_memory_unplug_request(HotplugHandler *hotplug_dev, addr / SPAPR_MEMORY_BLOCK_SIZE); g_assert(drc); - spapr_drc_detach(drc); + spapr_drc_unplug_request(drc); addr += SPAPR_MEMORY_BLOCK_SIZE; } @@ -3722,7 +3722,7 @@ void spapr_core_unplug_request(HotplugHandler *hotplug_dev, DeviceState *dev, g_assert(drc); if (!spapr_drc_unplug_requested(drc)) { - spapr_drc_detach(drc); + spapr_drc_unplug_request(drc); spapr_hotplug_req_remove_by_index(drc); } } @@ -3985,7 +3985,7 @@ static void spapr_phb_unplug_request(HotplugHandler *hotplug_dev, assert(drc); if (!spapr_drc_unplug_requested(drc)) { - spapr_drc_detach(drc); + spapr_drc_unplug_request(drc); spapr_hotplug_req_remove_by_index(drc); } } diff --git a/hw/ppc/spapr_drc.c b/hw/ppc/spapr_drc.c index 555a25517d..67041fb212 100644 --- a/hw/ppc/spapr_drc.c +++ b/hw/ppc/spapr_drc.c @@ -386,11 +386,11 @@ void spapr_drc_attach(SpaprDrc *drc, DeviceState *d) NULL, 0); } -void spapr_drc_detach(SpaprDrc *drc) +void spapr_drc_unplug_request(SpaprDrc *drc) { SpaprDrcClass *drck = SPAPR_DR_CONNECTOR_GET_CLASS(drc); - trace_spapr_drc_detach(spapr_drc_index(drc)); + trace_spapr_drc_unplug_request(spapr_drc_index(drc)); g_assert(drc->dev); diff --git a/hw/ppc/spapr_pci.c b/hw/ppc/spapr_pci.c index f1c7479816..b00e9609ae 100644 --- a/hw/ppc/spapr_pci.c +++ b/hw/ppc/spapr_pci.c @@ -1723,12 +1723,12 @@ static void spapr_pci_unplug_request(HotplugHandler *plug_handler, * functions, even if their unplug weren't requested * beforehand. */ - spapr_drc_detach(func_drc); + spapr_drc_unplug_request(func_drc); } } } - spapr_drc_detach(drc); + spapr_drc_unplug_request(drc); /* if this isn't func 0, defer unplug event. otherwise signal removal * for all present functions diff --git a/hw/ppc/trace-events b/hw/ppc/trace-events index 1e91984526..b4bbfbb013 100644 --- a/hw/ppc/trace-events +++ b/hw/ppc/trace-events @@ -50,7 +50,7 @@ spapr_drc_set_allocation_state(uint32_t index, int state) "drc: 0x%"PRIx32", sta spapr_drc_set_allocation_state_finalizing(uint32_t index) "drc: 0x%"PRIx32 spapr_drc_set_configured(uint32_t index) "drc: 0x%"PRIx32 spapr_drc_attach(uint32_t index) "drc: 0x%"PRIx32 -spapr_drc_detach(uint32_t index) "drc: 0x%"PRIx32 +spapr_drc_unplug_request(uint32_t index) "drc: 0x%"PRIx32 spapr_drc_awaiting_quiesce(uint32_t index) "drc: 0x%"PRIx32 spapr_drc_reset(uint32_t index) "drc: 0x%"PRIx32 spapr_drc_realize(uint32_t index) "drc: 0x%"PRIx32 diff --git a/include/hw/ppc/spapr_drc.h b/include/hw/ppc/spapr_drc.h index 8982927d5c..02a63b3666 100644 --- a/include/hw/ppc/spapr_drc.h +++ b/include/hw/ppc/spapr_drc.h @@ -243,7 +243,7 @@ int spapr_dt_drc(void *fdt, int offset, Object *owner, uint32_t drc_type_mask); * beforehand (eg. check drc->dev at pre-plug). */ void spapr_drc_attach(SpaprDrc *drc, DeviceState *d); -void spapr_drc_detach(SpaprDrc *drc); +void spapr_drc_unplug_request(SpaprDrc *drc); /* * Reset all DRCs, causing pending hot-plug/unplug requests to complete. From a4ee352fe025bd1308eb77b11b3b60542af8a370 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Le=20Goater?= Date: Mon, 22 Feb 2021 14:39:56 +0100 Subject: [PATCH 08/20] docs/system: Extend PPC section MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This moves the current documentation in files specific to each platform family. PowerNV machine is updated, the other machines need to be done. Signed-off-by: Cédric Le Goater Message-Id: <20210222133956.156001-1-clg@kaod.org> Reviewed-by: Greg Kurz [dwg: Trivial capitalization fix] Signed-off-by: David Gibson --- docs/system/ppc/embedded.rst | 10 ++ docs/system/ppc/powermac.rst | 34 ++++++ docs/system/ppc/powernv.rst | 193 +++++++++++++++++++++++++++++++++++ docs/system/ppc/prep.rst | 18 ++++ docs/system/ppc/pseries.rst | 12 +++ docs/system/target-ppc.rst | 53 +++------- 6 files changed, 282 insertions(+), 38 deletions(-) create mode 100644 docs/system/ppc/embedded.rst create mode 100644 docs/system/ppc/powermac.rst create mode 100644 docs/system/ppc/powernv.rst create mode 100644 docs/system/ppc/prep.rst create mode 100644 docs/system/ppc/pseries.rst diff --git a/docs/system/ppc/embedded.rst b/docs/system/ppc/embedded.rst new file mode 100644 index 0000000000..cfffbda24d --- /dev/null +++ b/docs/system/ppc/embedded.rst @@ -0,0 +1,10 @@ +Embedded family boards +====================== + +- ``bamboo`` bamboo +- ``mpc8544ds`` mpc8544ds +- ``ppce500`` generic paravirt e500 platform +- ``ref405ep`` ref405ep +- ``sam460ex`` aCube Sam460ex +- ``taihu`` taihu +- ``virtex-ml507`` Xilinx Virtex ML507 reference design diff --git a/docs/system/ppc/powermac.rst b/docs/system/ppc/powermac.rst new file mode 100644 index 0000000000..04334ba210 --- /dev/null +++ b/docs/system/ppc/powermac.rst @@ -0,0 +1,34 @@ +PowerMac family boards (``g3beige``, ``mac99``) +================================================================== + +Use the executable ``qemu-system-ppc`` to simulate a complete PowerMac +PowerPC system. + +- ``g3beige`` Heathrow based PowerMAC +- ``mac99`` Mac99 based PowerMAC + +Supported devices +----------------- + +QEMU emulates the following PowerMac peripherals: + + * UniNorth or Grackle PCI Bridge + * PCI VGA compatible card with VESA Bochs Extensions + * 2 PMAC IDE interfaces with hard disk and CD-ROM support + * NE2000 PCI adapters + * Non Volatile RAM + * VIA-CUDA with ADB keyboard and mouse. + + +Missing devices +--------------- + + * To be identified + +Firmware +-------- + +Since version 0.9.1, QEMU uses OpenBIOS https://www.openbios.org/ for +the g3beige and mac99 PowerMac and the 40p machines. OpenBIOS is a free +(GPL v2) portable firmware implementation. The goal is to implement a +100% IEEE 1275-1994 (referred to as Open Firmware) compliant firmware. diff --git a/docs/system/ppc/powernv.rst b/docs/system/ppc/powernv.rst new file mode 100644 index 0000000000..43c58bc32e --- /dev/null +++ b/docs/system/ppc/powernv.rst @@ -0,0 +1,193 @@ +PowerNV family boards (``powernv8``, ``powernv9``) +================================================================== + +PowerNV (as Non-Virtualized) is the "baremetal" platform using the +OPAL firmware. It runs Linux on IBM and OpenPOWER systems and it can +be used as an hypervisor OS, running KVM guests, or simply as a host +OS. + +The PowerNV QEMU machine tries to emulate a PowerNV system at the +level of the skiboot firmware, which loads the OS and provides some +runtime services. Power Systems have a lower firmware (HostBoot) that +does low level system initialization, like DRAM training. This is +beyond the scope of what QEMU addresses today. + +Supported devices +----------------- + + * Multi processor support for POWER8, POWER8NVL and POWER9. + * XSCOM, serial communication sideband bus to configure chiplets + * Simple LPC Controller + * Processor Service Interface (PSI) Controller + * Interrupt Controller, XICS (POWER8) and XIVE (POWER9) + * POWER8 PHB3 PCIe Host bridge and POWER9 PHB4 PCIe Host bridge + * Simple OCC is an on-chip microcontroller used for power management + tasks + * iBT device to handle BMC communication, with the internal BMC + simulator provided by QEMU or an external BMC such as an Aspeed + QEMU machine. + * PNOR containing the different firmware partitions. + +Missing devices +--------------- + +A lot is missing, among which : + + * POWER10 processor + * XIVE2 (POWER10) interrupt controller + * I2C controllers (yet to be merged) + * NPU/NPU2/NPU3 controllers + * EEH support for PCIe Host bridge controllers + * NX controller + * VAS controller + * chipTOD (Time Of Day) + * Self Boot Engine (SBE). + * FSI bus + +Firmware +-------- + +The OPAL firmware (OpenPower Abstraction Layer) for OpenPower systems +includes the runtime services `skiboot` and the bootloader kernel and +initramfs `skiroot`. Source code can be found on GitHub: + + https://github.com/open-power. + +Prebuilt images of `skiboot` and `skiboot` are made available on the `OpenPOWER `__ site. To boot a POWER9 machine, use the `witherspoon `__ images. For POWER8, use +the `palmetto `__ images. + +QEMU includes a prebuilt image of `skiboot` which is updated when a +more recent version is required by the models. + +Boot options +------------ + +Here is a simple setup with one e1000e NIC : + +.. code-block:: bash + + $ qemu-system-ppc64 -m 2G -machine powernv9 -smp 2,cores=2,threads=1 \ + -accel tcg,thread=single \ + -device e1000e,netdev=net0,mac=C0:FF:EE:00:00:02,bus=pcie.0,addr=0x0 \ + -netdev user,id=net0,hostfwd=::20022-:22,hostname=pnv \ + -kernel ./zImage.epapr \ + -initrd ./rootfs.cpio.xz \ + -nographic + +and a SATA disk : + +.. code-block:: bash + + -device ich9-ahci,id=sata0,bus=pcie.1,addr=0x0 \ + -drive file=./ubuntu-ppc64le.qcow2,if=none,id=drive0,format=qcow2,cache=none \ + -device ide-hd,bus=sata0.0,unit=0,drive=drive0,id=ide,bootindex=1 \ + +Complex PCIe configuration +~~~~~~~~~~~~~~~~~~~~~~~~~~ +Six PHBs are defined per chip (POWER9) but no default PCI layout is +provided (to be compatible with libvirt). One PCI device can be added +on any of the available PCIe slots using command line options such as: + +.. code-block:: bash + + -device e1000e,netdev=net0,mac=C0:FF:EE:00:00:02,bus=pcie.0,addr=0x0 + -netdev bridge,id=net0,helper=/usr/libexec/qemu-bridge-helper,br=virbr0,id=hostnet0 + + -device megasas,id=scsi0,bus=pcie.0,addr=0x0 + -drive file=./ubuntu-ppc64le.qcow2,if=none,id=drive-scsi0-0-0-0,format=qcow2,cache=none + -device scsi-hd,bus=scsi0.0,channel=0,scsi-id=0,lun=0,drive=drive-scsi0-0-0-0,id=scsi0-0-0-0,bootindex=2 + +Here is a full example with two different storage controllers on +different PHBs, each with a disk, the second PHB is empty : + +.. code-block:: bash + + $ qemu-system-ppc64 -m 2G -machine powernv9 -smp 2,cores=2,threads=1 -accel tcg,thread=single \ + -kernel ./zImage.epapr -initrd ./rootfs.cpio.xz -bios ./skiboot.lid \ + \ + -device megasas,id=scsi0,bus=pcie.0,addr=0x0 \ + -drive file=./rhel7-ppc64le.qcow2,if=none,id=drive-scsi0-0-0-0,format=qcow2,cache=none \ + -device scsi-hd,bus=scsi0.0,channel=0,scsi-id=0,lun=0,drive=drive-scsi0-0-0-0,id=scsi0-0-0-0,bootindex=2 \ + \ + -device pcie-pci-bridge,id=bridge1,bus=pcie.1,addr=0x0 \ + \ + -device ich9-ahci,id=sata0,bus=bridge1,addr=0x1 \ + -drive file=./ubuntu-ppc64le.qcow2,if=none,id=drive0,format=qcow2,cache=none \ + -device ide-hd,bus=sata0.0,unit=0,drive=drive0,id=ide,bootindex=1 \ + -device e1000e,netdev=net0,mac=C0:FF:EE:00:00:02,bus=bridge1,addr=0x2 \ + -netdev bridge,helper=/usr/libexec/qemu-bridge-helper,br=virbr0,id=net0 \ + -device nec-usb-xhci,bus=bridge1,addr=0x7 \ + \ + -serial mon:stdio -nographic + +You can also use VIRTIO devices : + +.. code-block:: bash + + -drive file=./fedora-ppc64le.qcow2,if=none,snapshot=on,id=drive0 \ + -device virtio-blk-pci,drive=drive0,id=blk0,bus=pcie.0 \ + \ + -netdev tap,helper=/usr/lib/qemu/qemu-bridge-helper,br=virbr0,id=netdev0 \ + -device virtio-net-pci,netdev=netdev0,id=net0,bus=pcie.1 \ + \ + -fsdev local,id=fsdev0,path=$HOME,security_model=passthrough \ + -device virtio-9p-pci,fsdev=fsdev0,mount_tag=host,bus=pcie.2 + +Multi sockets +~~~~~~~~~~~~~ + +The number of sockets is deduced from the number of CPUs and the +number of cores. ``-smp 2,cores=1`` will define a machine with 2 +sockets of 1 core, whereas ``-smp 2,cores=2`` will define a machine +with 1 socket of 2 cores. ``-smp 8,cores=2``, 4 sockets of 2 cores. + +BMC configuration +~~~~~~~~~~~~~~~~~ + +OpenPOWER systems negotiate the shutdown and reboot with their +BMC. The QEMU PowerNV machine embeds an IPMI BMC simulator using the +iBT interface and should offer the same power features. + +If you want to define your own BMC, use ``-nodefaults`` and specify +one on the command line : + +.. code-block:: bash + + -device ipmi-bmc-sim,id=bmc0 -device isa-ipmi-bt,bmc=bmc0,irq=10 + +The files `palmetto-SDR.bin `__ +and `palmetto-FRU.bin `__ +define a Sensor Data Record repository and a Field Replaceable Unit +inventory for a palmetto BMC. They can be used to extend the QEMU BMC +simulator. + +.. code-block:: bash + + -device ipmi-bmc-sim,sdrfile=./palmetto-SDR.bin,fruareasize=256,frudatafile=./palmetto-FRU.bin,id=bmc0 \ + -device isa-ipmi-bt,bmc=bmc0,irq=10 + +The PowerNV machine can also be run with an external IPMI BMC device +connected to a remote QEMU machine acting as BMC, using these options +: + +.. code-block:: bash + + -chardev socket,id=ipmi0,host=localhost,port=9002,reconnect=10 \ + -device ipmi-bmc-extern,id=bmc0,chardev=ipmi0 \ + -device isa-ipmi-bt,bmc=bmc0,irq=10 \ + -nodefaults + +NVRAM +~~~~~ + +Use a MTD drive to add a PNOR to the machine, and get a NVRAM : + +.. code-block:: bash + + -drive file=./witherspoon.pnor,format=raw,if=mtd + +CAVEATS +------- + + * No support for multiple HW threads (SMT=1). Same as pseries. + * CPU can hang when doing intensive I/Os. Use ``-append powersave=off`` in that case. diff --git a/docs/system/ppc/prep.rst b/docs/system/ppc/prep.rst new file mode 100644 index 0000000000..bd9eb8eabd --- /dev/null +++ b/docs/system/ppc/prep.rst @@ -0,0 +1,18 @@ +Prep machine (``40p``) +================================================================== + +Use the executable ``qemu-system-ppc`` to simulate a complete 40P (PREP) + +Supported devices +----------------- + +QEMU emulates the following 40P (PREP) peripherals: + + * PCI Bridge + * PCI VGA compatible card with VESA Bochs Extensions + * 2 IDE interfaces with hard disk and CD-ROM support + * Floppy disk + * PCnet network adapters + * Serial port + * PREP Non Volatile RAM + * PC compatible keyboard and mouse. diff --git a/docs/system/ppc/pseries.rst b/docs/system/ppc/pseries.rst new file mode 100644 index 0000000000..932d4dd17d --- /dev/null +++ b/docs/system/ppc/pseries.rst @@ -0,0 +1,12 @@ +pSeries family boards (``pseries``) +=================================== + +Supported devices +----------------- + +Missing devices +--------------- + + +Firmware +-------- diff --git a/docs/system/target-ppc.rst b/docs/system/target-ppc.rst index a2f04c533c..67905b8f2a 100644 --- a/docs/system/target-ppc.rst +++ b/docs/system/target-ppc.rst @@ -3,45 +3,22 @@ PowerPC System emulator ----------------------- -Use the executable ``qemu-system-ppc`` to simulate a complete 40P (PREP) -or PowerMac PowerPC system. +Board-specific documentation +============================ -QEMU emulates the following PowerMac peripherals: +You can get a complete list by running ``qemu-system-ppc64 --machine +help``. -- UniNorth or Grackle PCI Bridge +.. + This table of contents should be kept sorted alphabetically + by the title text of each file, which isn't the same ordering + as an alphabetical sort by filename. -- PCI VGA compatible card with VESA Bochs Extensions +.. toctree:: + :maxdepth: 1 -- 2 PMAC IDE interfaces with hard disk and CD-ROM support - -- NE2000 PCI adapters - -- Non Volatile RAM - -- VIA-CUDA with ADB keyboard and mouse. - -QEMU emulates the following 40P (PREP) peripherals: - -- PCI Bridge - -- PCI VGA compatible card with VESA Bochs Extensions - -- 2 IDE interfaces with hard disk and CD-ROM support - -- Floppy disk - -- PCnet network adapters - -- Serial port - -- PREP Non Volatile RAM - -- PC compatible keyboard and mouse. - -Since version 0.9.1, QEMU uses OpenBIOS https://www.openbios.org/ for -the g3beige and mac99 PowerMac and the 40p machines. OpenBIOS is a free -(GPL v2) portable firmware implementation. The goal is to implement a -100% IEEE 1275-1994 (referred to as Open Firmware) compliant firmware. - -More information is available at -http://perso.magic.fr/l_indien/qemu-ppc/. + ppc/embedded + ppc/powermac + ppc/powernv + ppc/prep + ppc/pseries From 936fda4d771fdc51d3640bdb0cc8ceec14165730 Mon Sep 17 00:00:00 2001 From: Fabiano Rosas Date: Mon, 22 Feb 2021 16:40:35 -0300 Subject: [PATCH 09/20] target/ppc: Fix bcdsub. emulation when result overflows The commit d03b174a83 (target/ppc: simplify bcdadd/sub functions) meant to simplify some of the code but it inadvertently altered the way the CR6 field is set after the operation has overflowed. The CR6 bits are set based on the *unbounded* result of the operation, so we need to look at the result before returning from bcd_add_mag, otherwise we will look at 0 when it overflows. Consider the following subtraction: v0 = 0x9999999999999999999999999999999c (maximum positive BCD value) v1 = 0x0000000000000000000000000000001d (negative one BCD value) bcdsub. v0,v0,v1,0 The Power ISA 2.07B says: If the unbounded result is greater than zero, do the following. If PS=0, the sign code of the result is set to 0b1100. If PS=1, the sign code of the result is set to 0b1111. If the operation overflows, CR field 6 is set to 0b0101. Otherwise, CR field 6 is set to 0b0100. POWER9 hardware: vr0 = 0x0000000000000000000000000000000c (positive zero BCD value) cr6 = 0b0101 (0x5) (positive, overflow) QEMU: vr0 = 0x0000000000000000000000000000000c (positive zero BCD value) cr6 = 0b0011 (0x3) (zero, overflow) <--- wrong This patch reverts the part of d03b174a83 that introduced the problem and adds a test-case to avoid further regressions: before: $ make run-tcg-tests-ppc64le-linux-user (...) TEST bcdsub on ppc64le bcdsub: qemu/tests/tcg/ppc64le/bcdsub.c:58: test_bcdsub_gt: Assertion `(cr >> 4) == ((1 << 2) | (1 << 0))' failed. Fixes: d03b174a83 (target/ppc: simplify bcdadd/sub functions) Reported-by: Paul Clarke Signed-off-by: Fabiano Rosas Message-Id: <20210222194035.2723056-1-farosas@linux.ibm.com> Signed-off-by: David Gibson --- target/ppc/int_helper.c | 13 ++- tests/tcg/configure.sh | 6 ++ tests/tcg/ppc64/Makefile.target | 13 +++ tests/tcg/ppc64le/Makefile.target | 12 +++ tests/tcg/ppc64le/bcdsub.c | 130 ++++++++++++++++++++++++++++++ 5 files changed, 171 insertions(+), 3 deletions(-) create mode 100644 tests/tcg/ppc64/Makefile.target create mode 100644 tests/tcg/ppc64le/Makefile.target create mode 100644 tests/tcg/ppc64le/bcdsub.c diff --git a/target/ppc/int_helper.c b/target/ppc/int_helper.c index 0b682a1f94..429de28494 100644 --- a/target/ppc/int_helper.c +++ b/target/ppc/int_helper.c @@ -2175,14 +2175,17 @@ static int bcd_cmp_mag(ppc_avr_t *a, ppc_avr_t *b) return 0; } -static void bcd_add_mag(ppc_avr_t *t, ppc_avr_t *a, ppc_avr_t *b, int *invalid, +static int bcd_add_mag(ppc_avr_t *t, ppc_avr_t *a, ppc_avr_t *b, int *invalid, int *overflow) { int carry = 0; int i; + int is_zero = 1; + for (i = 1; i <= 31; i++) { uint8_t digit = bcd_get_digit(a, i, invalid) + bcd_get_digit(b, i, invalid) + carry; + is_zero &= (digit == 0); if (digit > 9) { carry = 1; digit -= 10; @@ -2194,6 +2197,7 @@ static void bcd_add_mag(ppc_avr_t *t, ppc_avr_t *a, ppc_avr_t *b, int *invalid, } *overflow = carry; + return is_zero; } static void bcd_sub_mag(ppc_avr_t *t, ppc_avr_t *a, ppc_avr_t *b, int *invalid, @@ -2225,14 +2229,15 @@ uint32_t helper_bcdadd(ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b, uint32_t ps) int sgnb = bcd_get_sgn(b); int invalid = (sgna == 0) || (sgnb == 0); int overflow = 0; + int zero = 0; uint32_t cr = 0; ppc_avr_t result = { .u64 = { 0, 0 } }; if (!invalid) { if (sgna == sgnb) { result.VsrB(BCD_DIG_BYTE(0)) = bcd_preferred_sgn(sgna, ps); - bcd_add_mag(&result, a, b, &invalid, &overflow); - cr = bcd_cmp_zero(&result); + zero = bcd_add_mag(&result, a, b, &invalid, &overflow); + cr = (sgna > 0) ? CRF_GT : CRF_LT; } else { int magnitude = bcd_cmp_mag(a, b); if (magnitude > 0) { @@ -2255,6 +2260,8 @@ uint32_t helper_bcdadd(ppc_avr_t *r, ppc_avr_t *a, ppc_avr_t *b, uint32_t ps) cr = CRF_SO; } else if (overflow) { cr |= CRF_SO; + } else if (zero) { + cr |= CRF_EQ; } *r = result; diff --git a/tests/tcg/configure.sh b/tests/tcg/configure.sh index 36b8a73a54..ce304f4933 100755 --- a/tests/tcg/configure.sh +++ b/tests/tcg/configure.sh @@ -251,6 +251,12 @@ for target in $target_list; do echo "CROSS_CC_HAS_ARMV8_MTE=y" >> $config_target_mak fi ;; + ppc*) + if do_compiler "$target_compiler" $target_compiler_cflags \ + -mpower8-vector -o $TMPE $TMPC; then + echo "CROSS_CC_HAS_POWER8_VECTOR=y" >> $config_target_mak + fi + ;; esac enabled_cross_compilers="$enabled_cross_compilers $target_compiler" diff --git a/tests/tcg/ppc64/Makefile.target b/tests/tcg/ppc64/Makefile.target new file mode 100644 index 0000000000..0c6a4585fc --- /dev/null +++ b/tests/tcg/ppc64/Makefile.target @@ -0,0 +1,13 @@ +# -*- Mode: makefile -*- +# +# ppc64 specific tweaks + +VPATH += $(SRC_PATH)/tests/tcg/ppc64 +VPATH += $(SRC_PATH)/tests/tcg/ppc64le + +ifneq ($(DOCKER_IMAGE)$(CROSS_CC_HAS_POWER8_VECTOR),) +PPC64_TESTS=bcdsub +endif +bcdsub: CFLAGS += -mpower8-vector + +TESTS += $(PPC64_TESTS) diff --git a/tests/tcg/ppc64le/Makefile.target b/tests/tcg/ppc64le/Makefile.target new file mode 100644 index 0000000000..1acfcff94a --- /dev/null +++ b/tests/tcg/ppc64le/Makefile.target @@ -0,0 +1,12 @@ +# -*- Mode: makefile -*- +# +# ppc64le specific tweaks + +VPATH += $(SRC_PATH)/tests/tcg/ppc64le + +ifneq ($(DOCKER_IMAGE)$(CROSS_CC_HAS_POWER8_VECTOR),) +PPC64LE_TESTS=bcdsub +endif +bcdsub: CFLAGS += -mpower8-vector + +TESTS += $(PPC64LE_TESTS) diff --git a/tests/tcg/ppc64le/bcdsub.c b/tests/tcg/ppc64le/bcdsub.c new file mode 100644 index 0000000000..8c188cae6d --- /dev/null +++ b/tests/tcg/ppc64le/bcdsub.c @@ -0,0 +1,130 @@ +#include +#include +#include + +#define CRF_LT (1 << 3) +#define CRF_GT (1 << 2) +#define CRF_EQ (1 << 1) +#define CRF_SO (1 << 0) +#define UNDEF 0 + +#define BCDSUB(vra, vrb, ps) \ + asm ("bcdsub. %1,%2,%3,%4;" \ + "mfocrf %0,0b10;" \ + : "=r" (cr), "=v" (vrt) \ + : "v" (vra), "v" (vrb), "i" (ps) \ + : ); + +#define TEST(vra, vrb, ps, exp_res, exp_cr6) \ + do { \ + __int128 vrt = 0; \ + int cr = 0; \ + BCDSUB(vra, vrb, ps); \ + if (exp_res) \ + assert(vrt == exp_res); \ + assert((cr >> 4) == exp_cr6); \ + } while (0) + + +/* + * Unbounded result is equal to zero: + * sign = (PS) ? 0b1111 : 0b1100 + * CR6 = 0b0010 + */ +void test_bcdsub_eq(void) +{ + __int128 a, b; + + /* maximum positive BCD value */ + a = b = (((__int128) 0x9999999999999999) << 64 | 0x999999999999999c); + + TEST(a, b, 0, 0xc, CRF_EQ); + TEST(a, b, 1, 0xf, CRF_EQ); +} + +/* + * Unbounded result is greater than zero: + * sign = (PS) ? 0b1111 : 0b1100 + * CR6 = (overflow) ? 0b0101 : 0b0100 + */ +void test_bcdsub_gt(void) +{ + __int128 a, b, c; + + /* maximum positive BCD value */ + a = (((__int128) 0x9999999999999999) << 64 | 0x999999999999999c); + + /* negative one BCD value */ + b = (__int128) 0x1d; + + TEST(a, b, 0, 0xc, (CRF_GT | CRF_SO)); + TEST(a, b, 1, 0xf, (CRF_GT | CRF_SO)); + + c = (((__int128) 0x9999999999999999) << 64 | 0x999999999999998c); + + TEST(c, b, 0, a, CRF_GT); + TEST(c, b, 1, (a | 0x3), CRF_GT); +} + +/* + * Unbounded result is less than zero: + * sign = 0b1101 + * CR6 = (overflow) ? 0b1001 : 0b1000 + */ +void test_bcdsub_lt(void) +{ + __int128 a, b; + + /* positive zero BCD value */ + a = (__int128) 0xc; + + /* positive one BCD value */ + b = (__int128) 0x1c; + + TEST(a, b, 0, 0x1d, CRF_LT); + TEST(a, b, 1, 0x1d, CRF_LT); + + /* maximum negative BCD value */ + a = (((__int128) 0x9999999999999999) << 64 | 0x999999999999999d); + + /* positive one BCD value */ + b = (__int128) 0x1c; + + TEST(a, b, 0, 0xd, (CRF_LT | CRF_SO)); + TEST(a, b, 1, 0xd, (CRF_LT | CRF_SO)); +} + +void test_bcdsub_invalid(void) +{ + __int128 a, b; + + /* positive one BCD value */ + a = (__int128) 0x1c; + b = 0xf00; + + TEST(a, b, 0, UNDEF, CRF_SO); + TEST(a, b, 1, UNDEF, CRF_SO); + + TEST(b, a, 0, UNDEF, CRF_SO); + TEST(b, a, 1, UNDEF, CRF_SO); + + a = 0xbad; + + TEST(a, b, 0, UNDEF, CRF_SO); + TEST(a, b, 1, UNDEF, CRF_SO); +} + +int main(void) +{ + struct sigaction action; + + action.sa_handler = _exit; + sigaction(SIGABRT, &action, NULL); + + test_bcdsub_eq(); + test_bcdsub_gt(); + test_bcdsub_lt(); + test_bcdsub_invalid(); + + return 0; +} From 51254ffb320183a4636635840c23ee0e3a1efffa Mon Sep 17 00:00:00 2001 From: Daniel Henrique Barboza Date: Mon, 22 Feb 2021 16:45:29 -0300 Subject: [PATCH 10/20] spapr_drc.c: introduce unplug_timeout_timer The LoPAR spec provides no way for the guest kernel to report failure of hotplug/hotunplug events. This wouldn't be bad if those operations were granted to always succeed, but that's far for the reality. What ends up happening is that, in the case of a failed hotunplug, regardless of whether it was a QEMU error or a guest misbehavior, the pSeries machine is retaining the unplug state of the device in the running guest. This state is cleanup in machine reset, where it is assumed that this state represents a device that is pending unplug, and the device is hotunpluged from the board. Until the reset occurs, any hotunplug operation of the same device is forbid because there is a pending unplug state. This behavior has at least one undesirable side effect. A long standing pending unplug state is, more often than not, the result of a hotunplug error. The user had to dealt with it, since retrying to unplug the device is noy allowed, and then in the machine reset we're removing the device from the guest. This means that we're failing the user twice - failed to hotunplug when asked, then hotunplugged without notice. Solutions to this problem range between trying to predict when the hotunplug will fail and forbid the operation from the QEMU layer, from opening up the IRQ queue to allow for multiple hotunplug attempts, from telling the users to 'reboot the machine if something goes wrong'. The first solution is flawed because we can't fully predict guest behavior from QEMU, the second solution is a trial and error remediation that counts on a hope that the unplug will eventually succeed, and the third is ... well. This patch introduces a crude, but effective solution to hotunplug errors in the pSeries machine. For each unplug done, we'll timeout after some time. If a certain amount of time passes, we'll cleanup the hotunplug state from the machine. During the timeout period, any unplug operations in the same device will still be blocked. After that, we'll assume that the guest failed the operation, and allow the user to try again. If the timeout is too short we'll prevent legitimate hotunplug situations to occur, so we'll need to overestimate the regular time an unplug operation takes to succeed to account that. The true solution for the hotunplug errors in the pSeries machines is a PAPR change to allow for the guest to warn the platform about it. For now, the work done in this timeout design can be used for the new PAPR 'abort hcall' in the future, given that for both cases we'll need code to cleanup the existing unplug states of the DRCs. At this moment we're adding the basic wiring of the timer into the DRC. Next patch will use the timer to timeout failed CPU hotunplugs. Signed-off-by: Daniel Henrique Barboza Message-Id: <20210222194531.62717-4-danielhb413@gmail.com> Signed-off-by: David Gibson --- hw/ppc/spapr_drc.c | 40 ++++++++++++++++++++++++++++++++++++++ include/hw/ppc/spapr_drc.h | 4 ++++ 2 files changed, 44 insertions(+) diff --git a/hw/ppc/spapr_drc.c b/hw/ppc/spapr_drc.c index 67041fb212..27adbc5c30 100644 --- a/hw/ppc/spapr_drc.c +++ b/hw/ppc/spapr_drc.c @@ -57,6 +57,8 @@ static void spapr_drc_release(SpaprDrc *drc) drck->release(drc->dev); drc->unplug_requested = false; + timer_del(drc->unplug_timeout_timer); + g_free(drc->fdt); drc->fdt = NULL; drc->fdt_start_offset = 0; @@ -370,6 +372,17 @@ static void prop_get_fdt(Object *obj, Visitor *v, const char *name, } while (fdt_depth != 0); } +static void spapr_drc_start_unplug_timeout_timer(SpaprDrc *drc) +{ + SpaprDrcClass *drck = SPAPR_DR_CONNECTOR_GET_CLASS(drc); + + if (drck->unplug_timeout_seconds != 0) { + timer_mod(drc->unplug_timeout_timer, + qemu_clock_get_ms(QEMU_CLOCK_VIRTUAL) + + drck->unplug_timeout_seconds * 1000); + } +} + void spapr_drc_attach(SpaprDrc *drc, DeviceState *d) { trace_spapr_drc_attach(spapr_drc_index(drc)); @@ -475,11 +488,23 @@ static bool spapr_drc_needed(void *opaque) spapr_drc_unplug_requested(drc); } +static int spapr_drc_post_load(void *opaque, int version_id) +{ + SpaprDrc *drc = opaque; + + if (drc->unplug_requested) { + spapr_drc_start_unplug_timeout_timer(drc); + } + + return 0; +} + static const VMStateDescription vmstate_spapr_drc = { .name = "spapr_drc", .version_id = 1, .minimum_version_id = 1, .needed = spapr_drc_needed, + .post_load = spapr_drc_post_load, .fields = (VMStateField []) { VMSTATE_UINT32(state, SpaprDrc), VMSTATE_END_OF_LIST() @@ -490,6 +515,15 @@ static const VMStateDescription vmstate_spapr_drc = { } }; +static void drc_unplug_timeout_cb(void *opaque) +{ + SpaprDrc *drc = opaque; + + if (drc->unplug_requested) { + drc->unplug_requested = false; + } +} + static void drc_realize(DeviceState *d, Error **errp) { SpaprDrc *drc = SPAPR_DR_CONNECTOR(d); @@ -512,6 +546,11 @@ static void drc_realize(DeviceState *d, Error **errp) object_property_add_alias(root_container, link_name, drc->owner, child_name); g_free(link_name); + + drc->unplug_timeout_timer = timer_new_ms(QEMU_CLOCK_VIRTUAL, + drc_unplug_timeout_cb, + drc); + vmstate_register(VMSTATE_IF(drc), spapr_drc_index(drc), &vmstate_spapr_drc, drc); trace_spapr_drc_realize_complete(spapr_drc_index(drc)); @@ -529,6 +568,7 @@ static void drc_unrealize(DeviceState *d) name = g_strdup_printf("%x", spapr_drc_index(drc)); object_property_del(root_container, name); g_free(name); + timer_free(drc->unplug_timeout_timer); } SpaprDrc *spapr_dr_connector_new(Object *owner, const char *type, diff --git a/include/hw/ppc/spapr_drc.h b/include/hw/ppc/spapr_drc.h index 02a63b3666..38ec4c8091 100644 --- a/include/hw/ppc/spapr_drc.h +++ b/include/hw/ppc/spapr_drc.h @@ -187,6 +187,8 @@ typedef struct SpaprDrc { bool unplug_requested; void *fdt; int fdt_start_offset; + + QEMUTimer *unplug_timeout_timer; } SpaprDrc; struct SpaprMachineState; @@ -209,6 +211,8 @@ typedef struct SpaprDrcClass { int (*dt_populate)(SpaprDrc *drc, struct SpaprMachineState *spapr, void *fdt, int *fdt_start_offset, Error **errp); + + int unplug_timeout_seconds; } SpaprDrcClass; typedef struct SpaprDrcPhysical { From d1c2e3ce3d5a5424651967bce1cf1f4caa0c6d91 Mon Sep 17 00:00:00 2001 From: Daniel Henrique Barboza Date: Mon, 22 Feb 2021 16:45:30 -0300 Subject: [PATCH 11/20] spapr_drc.c: add hotunplug timeout for CPUs There is a reliable way to make a CPU hotunplug fail in the pseries machine. Hotplug a CPU A, then offline all other CPUs inside the guest but A. When trying to hotunplug A the guest kernel will refuse to do it, because A is now the last online CPU of the guest. PAPR has no 'error callback' in this situation to report back to the platform, so the guest kernel will deny the unplug in silent and QEMU will never know what happened. The unplug pending state of A will remain until the guest is shutdown or rebooted. Previous attempts of fixing it (see [1] and [2]) were aimed at trying to mitigate the effects of the problem. In [1] we were trying to guess which guest CPUs were online to forbid hotunplug of the last online CPU in the QEMU layer, avoiding the scenario described above because QEMU is now failing in behalf of the guest. This is not robust because the last online CPU of the guest can change while we're in the middle of the unplug process, and our initial assumptions are now invalid. In [2] we were accepting that our unplug process is uncertain and the user should be allowed to spam the IRQ hotunplug queue of the guest in case the CPU hotunplug fails. This patch presents another alternative, using the timeout infrastructure introduced in the previous patch. CPU hotunplugs in the pSeries machine will now timeout after 15 seconds. This is a long time for a single CPU unplug to occur, regardless of guest load - although the user is *strongly* encouraged to *not* hotunplug devices from a guest under high load - and we can be sure that something went wrong if it takes longer than that for the guest to release the CPU (the same can't be said about memory hotunplug - more on that in the next patch). Timing out the unplug operation will reset the unplug state of the CPU and allow the user to try it again, regardless of the error situation that prevented the hotunplug to occur. Of all the not so pretty fixes/mitigations for CPU hotunplug errors in pSeries, timing out the operation is an admission that we have no control in the process, and must assume the worst case if the operation doesn't succeed in a sensible time frame. [1] https://lists.gnu.org/archive/html/qemu-devel/2021-01/msg03353.html [2] https://lists.gnu.org/archive/html/qemu-devel/2021-01/msg04400.html Reported-by: Xujun Ma Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=1911414 Reviewed-by: David Gibson Signed-off-by: Daniel Henrique Barboza Message-Id: <20210222194531.62717-5-danielhb413@gmail.com> Signed-off-by: David Gibson --- hw/ppc/spapr.c | 4 ++++ hw/ppc/spapr_drc.c | 13 +++++++++++++ include/hw/ppc/spapr_drc.h | 1 + 3 files changed, 18 insertions(+) diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c index b066df68cb..ecce8abf14 100644 --- a/hw/ppc/spapr.c +++ b/hw/ppc/spapr.c @@ -3724,6 +3724,10 @@ void spapr_core_unplug_request(HotplugHandler *hotplug_dev, DeviceState *dev, if (!spapr_drc_unplug_requested(drc)) { spapr_drc_unplug_request(drc); spapr_hotplug_req_remove_by_index(drc); + } else { + error_setg(errp, "core-id %d unplug is still pending, %d seconds " + "timeout remaining", + cc->core_id, spapr_drc_unplug_timeout_remaining_sec(drc)); } } diff --git a/hw/ppc/spapr_drc.c b/hw/ppc/spapr_drc.c index 27adbc5c30..fd2e45640f 100644 --- a/hw/ppc/spapr_drc.c +++ b/hw/ppc/spapr_drc.c @@ -409,6 +409,8 @@ void spapr_drc_unplug_request(SpaprDrc *drc) drc->unplug_requested = true; + spapr_drc_start_unplug_timeout_timer(drc); + if (drc->state != drck->empty_state) { trace_spapr_drc_awaiting_quiesce(spapr_drc_index(drc)); return; @@ -417,6 +419,16 @@ void spapr_drc_unplug_request(SpaprDrc *drc) spapr_drc_release(drc); } +int spapr_drc_unplug_timeout_remaining_sec(SpaprDrc *drc) +{ + if (drc->unplug_requested && timer_pending(drc->unplug_timeout_timer)) { + return (qemu_timeout_ns_to_ms(drc->unplug_timeout_timer->expire_time) - + qemu_clock_get_ms(QEMU_CLOCK_VIRTUAL)) / 1000; + } + + return 0; +} + bool spapr_drc_reset(SpaprDrc *drc) { SpaprDrcClass *drck = SPAPR_DR_CONNECTOR_GET_CLASS(drc); @@ -710,6 +722,7 @@ static void spapr_drc_cpu_class_init(ObjectClass *k, void *data) drck->drc_name_prefix = "CPU "; drck->release = spapr_core_release; drck->dt_populate = spapr_core_dt_populate; + drck->unplug_timeout_seconds = 15; } static void spapr_drc_pci_class_init(ObjectClass *k, void *data) diff --git a/include/hw/ppc/spapr_drc.h b/include/hw/ppc/spapr_drc.h index 38ec4c8091..26599c385a 100644 --- a/include/hw/ppc/spapr_drc.h +++ b/include/hw/ppc/spapr_drc.h @@ -248,6 +248,7 @@ int spapr_dt_drc(void *fdt, int offset, Object *owner, uint32_t drc_type_mask); */ void spapr_drc_attach(SpaprDrc *drc, DeviceState *d); void spapr_drc_unplug_request(SpaprDrc *drc); +int spapr_drc_unplug_timeout_remaining_sec(SpaprDrc *drc); /* * Reset all DRCs, causing pending hot-plug/unplug requests to complete. From fe1831eff8a41e96044fe98a6b0e232daa22ef83 Mon Sep 17 00:00:00 2001 From: Daniel Henrique Barboza Date: Mon, 22 Feb 2021 16:45:31 -0300 Subject: [PATCH 12/20] spapr_drc.c: use DRC reconfiguration to cleanup DIMM unplug state MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Handling errors in memory hotunplug in the pSeries machine is more complex than any other device type, because there are all the complications that other devices has, and more. For instance, determining a timeout for a DIMM hotunplug must consider if it's a Hash-MMU or a Radix-MMU guest, because Hash guests takes longer to hotunplug DIMMs. The size of the DIMM is also a factor, given that longer DIMMs naturally takes longer to be hotunplugged from the kernel. And there's also the guest memory usage to be considered: if there's a process that is consuming memory that would be lost by the DIMM unplug, the kernel will postpone the unplug process until the process finishes, and then initiate the regular hotunplug process. The first two considerations are manageable, but the last one is a deal breaker. There is no sane way for the pSeries machine to determine the memory load in the guest when attempting a DIMM hotunplug - and even if there was a way, the guest can start using all the RAM in the middle of the unplug process and invalidate our previous assumptions - and in result we can't even begin to calculate a timeout for the operation. This means that we can't implement a viable timeout mechanism for memory unplug in pSeries. Going back to why we would consider an unplug timeout, the reason is that we can't know if the kernel is giving up the unplug. Turns out that, sometimes, we can. Consider a failed memory hotunplug attempt where the kernel will error out with the following message: 'pseries-hotplug-mem: Memory indexed-count-remove failed, adding any removed LMBs' This happens when there is a LMB that the kernel gave up in removing, and the LMBs previously marked for removal are now being added back. This happens in the pseries kernel in [1], dlpar_memory_remove_by_ic() into dlpar_add_lmb(), and after that update_lmb_associativity_index(). In this function, the kernel is configuring the LMB DRC connector again. Note that this is a valid usage in LOPAR, as stated in section "ibm,configure-connector RTAS Call": 'A subsequent sequence of calls to ibm,configure-connector with the same entry from the “ibm,drc-indexes” or “ibm,drc-info” property will restart the configuration of devices which were not completely configured.' We can use this kernel behavior in our favor. If a DRC connector reconfiguration for a LMB that we marked as unplug pending happens, this indicates that the kernel changed its mind about the unplug and is reasserting that it will keep using all the LMBs of the DIMM. In this case, it's safe to assume that the whole DIMM device unplug was cancelled. This patch hops into rtas_ibm_configure_connector() and, in the scenario described above, clear the unplug state for the DIMM device. This will not solve all the problems we still have with memory unplug, but it will cover this case where the kernel reconfigures LMBs after a failed unplug. We are a bit more resilient, without using an unreliable timeout, and we didn't make the remaining error cases any worse. [1] arch/powerpc/platforms/pseries/hotplug-memory.c Signed-off-by: Daniel Henrique Barboza Message-Id: <20210222194531.62717-6-danielhb413@gmail.com> Signed-off-by: David Gibson --- hw/ppc/spapr.c | 43 ++++++++++++++++++++++++++++++++++++++++++ hw/ppc/spapr_drc.c | 10 ++++++++++ include/hw/ppc/spapr.h | 2 ++ 3 files changed, 55 insertions(+) diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c index ecce8abf14..6eaddb12cb 100644 --- a/hw/ppc/spapr.c +++ b/hw/ppc/spapr.c @@ -3575,6 +3575,49 @@ static SpaprDimmState *spapr_recover_pending_dimm_state(SpaprMachineState *ms, return spapr_pending_dimm_unplugs_add(ms, avail_lmbs, dimm); } +void spapr_clear_pending_dimm_unplug_state(SpaprMachineState *spapr, + DeviceState *dev) +{ + SpaprDimmState *ds; + PCDIMMDevice *dimm; + SpaprDrc *drc; + uint32_t nr_lmbs; + uint64_t size, addr_start, addr; + int i; + + if (!dev) { + return; + } + + dimm = PC_DIMM(dev); + ds = spapr_pending_dimm_unplugs_find(spapr, dimm); + + /* + * 'ds == NULL' would mean that the DIMM doesn't have a pending + * unplug state, but one of its DRC is marked as unplug_requested. + * This is bad and weird enough to g_assert() out. + */ + g_assert(ds); + + spapr_pending_dimm_unplugs_remove(spapr, ds); + + size = memory_device_get_region_size(MEMORY_DEVICE(dimm), &error_abort); + nr_lmbs = size / SPAPR_MEMORY_BLOCK_SIZE; + + addr_start = object_property_get_uint(OBJECT(dimm), PC_DIMM_ADDR_PROP, + &error_abort); + + addr = addr_start; + for (i = 0; i < nr_lmbs; i++) { + drc = spapr_drc_by_id(TYPE_SPAPR_DRC_LMB, + addr / SPAPR_MEMORY_BLOCK_SIZE); + g_assert(drc); + + drc->unplug_requested = false; + addr += SPAPR_MEMORY_BLOCK_SIZE; + } +} + /* Callback to be called during DRC release. */ void spapr_lmb_release(DeviceState *dev) { diff --git a/hw/ppc/spapr_drc.c b/hw/ppc/spapr_drc.c index fd2e45640f..8c4997d795 100644 --- a/hw/ppc/spapr_drc.c +++ b/hw/ppc/spapr_drc.c @@ -1230,6 +1230,16 @@ static void rtas_ibm_configure_connector(PowerPCCPU *cpu, drck = SPAPR_DR_CONNECTOR_GET_CLASS(drc); + /* + * This indicates that the kernel is reconfiguring a LMB due to + * a failed hotunplug. Clear the pending unplug state for the whole + * DIMM. + */ + if (spapr_drc_type(drc) == SPAPR_DR_CONNECTOR_TYPE_LMB && + drc->unplug_requested) { + spapr_clear_pending_dimm_unplug_state(spapr, drc->dev); + } + if (!drc->fdt) { void *fdt; int fdt_size; diff --git a/include/hw/ppc/spapr.h b/include/hw/ppc/spapr.h index ccbeeca1de..d6edeaaaff 100644 --- a/include/hw/ppc/spapr.h +++ b/include/hw/ppc/spapr.h @@ -847,6 +847,8 @@ int spapr_hpt_shift_for_ramsize(uint64_t ramsize); int spapr_reallocate_hpt(SpaprMachineState *spapr, int shift, Error **errp); void spapr_clear_pending_events(SpaprMachineState *spapr); void spapr_clear_pending_hotplug_events(SpaprMachineState *spapr); +void spapr_clear_pending_dimm_unplug_state(SpaprMachineState *spapr, + DeviceState *dev); int spapr_max_server_number(SpaprMachineState *spapr); void spapr_store_hpte(PowerPCCPU *cpu, hwaddr ptex, uint64_t pte0, uint64_t pte1); From f149c9b7f942c56f30e66be034f669b95255474e Mon Sep 17 00:00:00 2001 From: Bin Meng Date: Sun, 28 Feb 2021 13:04:31 +0800 Subject: [PATCH 13/20] hw/net: fsl_etsec: Fix build error when HEX_DUMP is on "qemu-common.h" should be included to provide the forward declaration of qemu_hexdump() when HEX_DUMP is on. Signed-off-by: Bin Meng Message-Id: <20210228050431.24647-1-bmeng.cn@gmail.com> Signed-off-by: David Gibson --- hw/net/fsl_etsec/etsec.c | 1 + hw/net/fsl_etsec/rings.c | 1 + 2 files changed, 2 insertions(+) diff --git a/hw/net/fsl_etsec/etsec.c b/hw/net/fsl_etsec/etsec.c index 93886bba60..bd9d62b559 100644 --- a/hw/net/fsl_etsec/etsec.c +++ b/hw/net/fsl_etsec/etsec.c @@ -27,6 +27,7 @@ */ #include "qemu/osdep.h" +#include "qemu-common.h" #include "hw/sysbus.h" #include "hw/irq.h" #include "hw/ptimer.h" diff --git a/hw/net/fsl_etsec/rings.c b/hw/net/fsl_etsec/rings.c index fe055d3381..d6be0d7d18 100644 --- a/hw/net/fsl_etsec/rings.c +++ b/hw/net/fsl_etsec/rings.c @@ -22,6 +22,7 @@ * THE SOFTWARE. */ #include "qemu/osdep.h" +#include "qemu-common.h" #include "net/checksum.h" #include "qemu/log.h" #include "etsec.h" From e5943b00d35efc68ca72ed304cfca98a9f3a647c Mon Sep 17 00:00:00 2001 From: Bin Meng Date: Wed, 24 Feb 2021 17:28:39 +0800 Subject: [PATCH 14/20] hw/ppc: e500: Add missing in the eTSEC node The eTSEC node should provide an empty property in the eTSEC node, otherwise of_translate_address() in the Linux kernel fails to get the eTSEC register base, reporting: OF: ** translation for device /platform@f00000000/ethernet@0/queue-group ** OF: bus is default (na=1, ns=1) on /platform@f00000000/ethernet@0 OF: translating address: 00000000 OF: parent bus is default (na=1, ns=1) on /platform@f00000000 OF: no ranges; cannot translate Per devicetree spec v0.3 [1] chapter 2.3.8: If the property is not present in a bus node, it is assumed that no mapping exists between children of the node and the parent address space. This is why of_translate_address() aborts the address translation. Apparently U-Boot devicetree parser seems to be tolerant with missing as this was not noticed when testing with U-Boot. The empty property is present in all kernel shipped dtsi files for eTSEC, Let's add it to conform with the spec. [1] https://github.com/devicetree-org/devicetree-specification/releases/download/v0.3/devicetree-specification-v0.3.pdf Fixes: fdfb7f2cdb2d ("e500: Add support for eTSEC in device tree") Signed-off-by: Bin Meng Message-Id: <1614158919-9473-1-git-send-email-bmeng.cn@gmail.com> Signed-off-by: David Gibson --- hw/ppc/e500.c | 1 + 1 file changed, 1 insertion(+) diff --git a/hw/ppc/e500.c b/hw/ppc/e500.c index 01517a6c6c..1d94485ac8 100644 --- a/hw/ppc/e500.c +++ b/hw/ppc/e500.c @@ -231,6 +231,7 @@ static int create_devtree_etsec(SysBusDevice *sbdev, PlatformDevtreeData *data) assert(irq2 >= 0); qemu_fdt_add_subnode(fdt, node); + qemu_fdt_setprop(fdt, node, "ranges", NULL, 0); qemu_fdt_setprop_string(fdt, node, "device_type", "network"); qemu_fdt_setprop_string(fdt, node, "compatible", "fsl,etsec2"); qemu_fdt_setprop_string(fdt, node, "model", "eTSEC"); From 7420033ec460e7b9906bf05fbe1a0d3830536657 Mon Sep 17 00:00:00 2001 From: Daniel Henrique Barboza Date: Fri, 26 Feb 2021 13:32:59 -0300 Subject: [PATCH 15/20] spapr.c: add 'unplug already in progress' message for PHB unplug Both CPU hotunplug and PC_DIMM unplug reports an user warning, mentioning that the hotunplug is in progress, if consecutive 'device_del' are issued in quick succession. Do the same for PHBs in spapr_phb_unplug_request(). Signed-off-by: Daniel Henrique Barboza Message-Id: <20210226163301.419727-4-danielhb413@gmail.com> Reviewed-by: Greg Kurz Signed-off-by: David Gibson --- hw/ppc/spapr.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c index 6eaddb12cb..aca3ef9d58 100644 --- a/hw/ppc/spapr.c +++ b/hw/ppc/spapr.c @@ -4034,6 +4034,10 @@ static void spapr_phb_unplug_request(HotplugHandler *hotplug_dev, if (!spapr_drc_unplug_requested(drc)) { spapr_drc_unplug_request(drc); spapr_hotplug_req_remove_by_index(drc); + } else { + error_setg(errp, + "PCI Host Bridge unplug already in progress for device %s", + dev->id); } } From e35dfbd22780aafbcd4b6da5130a00fc085fd5de Mon Sep 17 00:00:00 2001 From: Daniel Henrique Barboza Date: Fri, 26 Feb 2021 13:33:00 -0300 Subject: [PATCH 16/20] spapr_pci.c: add 'unplug already in progress' message for PCI unplug Hotunplug for all other devices are warning the user when the hotunplug is already in progress. Do the same for PCI devices in spapr_pci_unplug_request(). Signed-off-by: Daniel Henrique Barboza Message-Id: <20210226163301.419727-5-danielhb413@gmail.com> Reviewed-by: Greg Kurz Signed-off-by: David Gibson --- hw/ppc/spapr_pci.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/hw/ppc/spapr_pci.c b/hw/ppc/spapr_pci.c index b00e9609ae..feba18cb12 100644 --- a/hw/ppc/spapr_pci.c +++ b/hw/ppc/spapr_pci.c @@ -1743,6 +1743,10 @@ static void spapr_pci_unplug_request(HotplugHandler *plug_handler, } } } + } else { + error_setg(errp, + "PCI device unplug already in progress for device %s", + drc->dev->id); } } From 4515a5f786024fabf0bef4cf3d28adf5647e6e82 Mon Sep 17 00:00:00 2001 From: Daniel Henrique Barboza Date: Mon, 1 Mar 2021 09:41:33 -0300 Subject: [PATCH 17/20] qemu_timer.c: add timer_deadline_ms() helper The pSeries machine is using QEMUTimer internals to return the timeout in seconds for a timer object, in hw/ppc/spapr.c, function spapr_drc_unplug_timeout_remaining_sec(). Create a helper in qemu-timer.c to retrieve the deadline for a QEMUTimer object, in ms, to avoid exposing timer internals to the PPC code. CC: Paolo Bonzini Acked-by: Paolo Bonzini Signed-off-by: Daniel Henrique Barboza Message-Id: <20210301124133.23800-2-danielhb413@gmail.com> Reviewed-by: Greg Kurz Signed-off-by: David Gibson --- hw/ppc/spapr_drc.c | 5 ++--- include/qemu/timer.h | 8 ++++++++ util/qemu-timer.c | 13 +++++++++++++ 3 files changed, 23 insertions(+), 3 deletions(-) diff --git a/hw/ppc/spapr_drc.c b/hw/ppc/spapr_drc.c index 8c4997d795..98b626acf9 100644 --- a/hw/ppc/spapr_drc.c +++ b/hw/ppc/spapr_drc.c @@ -421,9 +421,8 @@ void spapr_drc_unplug_request(SpaprDrc *drc) int spapr_drc_unplug_timeout_remaining_sec(SpaprDrc *drc) { - if (drc->unplug_requested && timer_pending(drc->unplug_timeout_timer)) { - return (qemu_timeout_ns_to_ms(drc->unplug_timeout_timer->expire_time) - - qemu_clock_get_ms(QEMU_CLOCK_VIRTUAL)) / 1000; + if (drc->unplug_requested) { + return timer_deadline_ms(drc->unplug_timeout_timer) / 1000; } return 0; diff --git a/include/qemu/timer.h b/include/qemu/timer.h index 1678238384..5e76e3f8c2 100644 --- a/include/qemu/timer.h +++ b/include/qemu/timer.h @@ -795,6 +795,14 @@ static inline int64_t get_max_clock_jump(void) return 60 * NANOSECONDS_PER_SECOND; } +/** + * timer_deadline_ms: + * + * Returns the remaining miliseconds for @timer to expire, or zero + * if the timer is no longer pending. + */ +int64_t timer_deadline_ms(QEMUTimer *timer); + /* * Low level clock functions */ diff --git a/util/qemu-timer.c b/util/qemu-timer.c index 81c28af517..02424bc1b6 100644 --- a/util/qemu-timer.c +++ b/util/qemu-timer.c @@ -243,6 +243,19 @@ int64_t timerlist_deadline_ns(QEMUTimerList *timer_list) return delta; } +/* + * Returns the time remaining for the deadline, in ms. + */ +int64_t timer_deadline_ms(QEMUTimer *timer) +{ + if (timer_pending(timer)) { + return qemu_timeout_ns_to_ms(timer->expire_time) - + qemu_clock_get_ms(timer->timer_list->clock->type); + } + + return 0; +} + /* Calculate the soonest deadline across all timerlists attached * to the clock. This is used for the icount timeout so we * ignore whether or not the clock should be used in deadline From 09db2216aa06be8bacd0101723d9c257f75c803f Mon Sep 17 00:00:00 2001 From: Vitaly Cheptsov Date: Wed, 3 Mar 2021 17:08:51 +0300 Subject: [PATCH 18/20] target/ppc: fix icount support on Book-e vms accessing SPRs Failing to guard SPR access with gen_io_start/gen_stop_exception causes "Bad icount read" exceptions when running VMs with e500mc and e500v2 CPUs with an icount parameter. Cc: David Gibson Cc: Greg Kurz Cc: Paolo Bonzini Signed-off-by: Vitaly Cheptsov Message-Id: <20210303140851.78383-1-cheptsov@ispras.ru> Signed-off-by: David Gibson --- target/ppc/translate_init.c.inc | 36 +++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/target/ppc/translate_init.c.inc b/target/ppc/translate_init.c.inc index e7324e85cd..09c9ae2c98 100644 --- a/target/ppc/translate_init.c.inc +++ b/target/ppc/translate_init.c.inc @@ -567,35 +567,71 @@ static void spr_write_601_ubatl(DisasContext *ctx, int sprn, int gprn) #if !defined(CONFIG_USER_ONLY) static void spr_read_40x_pit(DisasContext *ctx, int gprn, int sprn) { + if (tb_cflags(ctx->base.tb) & CF_USE_ICOUNT) { + gen_io_start(); + } gen_helper_load_40x_pit(cpu_gpr[gprn], cpu_env); + if (tb_cflags(ctx->base.tb) & CF_USE_ICOUNT) { + gen_stop_exception(ctx); + } } static void spr_write_40x_pit(DisasContext *ctx, int sprn, int gprn) { + if (tb_cflags(ctx->base.tb) & CF_USE_ICOUNT) { + gen_io_start(); + } gen_helper_store_40x_pit(cpu_env, cpu_gpr[gprn]); + if (tb_cflags(ctx->base.tb) & CF_USE_ICOUNT) { + gen_stop_exception(ctx); + } } static void spr_write_40x_dbcr0(DisasContext *ctx, int sprn, int gprn) { + if (tb_cflags(ctx->base.tb) & CF_USE_ICOUNT) { + gen_io_start(); + } gen_store_spr(sprn, cpu_gpr[gprn]); gen_helper_store_40x_dbcr0(cpu_env, cpu_gpr[gprn]); /* We must stop translation as we may have rebooted */ gen_stop_exception(ctx); + if (tb_cflags(ctx->base.tb) & CF_USE_ICOUNT) { + gen_stop_exception(ctx); + } } static void spr_write_40x_sler(DisasContext *ctx, int sprn, int gprn) { + if (tb_cflags(ctx->base.tb) & CF_USE_ICOUNT) { + gen_io_start(); + } gen_helper_store_40x_sler(cpu_env, cpu_gpr[gprn]); + if (tb_cflags(ctx->base.tb) & CF_USE_ICOUNT) { + gen_stop_exception(ctx); + } } static void spr_write_booke_tcr(DisasContext *ctx, int sprn, int gprn) { + if (tb_cflags(ctx->base.tb) & CF_USE_ICOUNT) { + gen_io_start(); + } gen_helper_store_booke_tcr(cpu_env, cpu_gpr[gprn]); + if (tb_cflags(ctx->base.tb) & CF_USE_ICOUNT) { + gen_stop_exception(ctx); + } } static void spr_write_booke_tsr(DisasContext *ctx, int sprn, int gprn) { + if (tb_cflags(ctx->base.tb) & CF_USE_ICOUNT) { + gen_io_start(); + } gen_helper_store_booke_tsr(cpu_env, cpu_gpr[gprn]); + if (tb_cflags(ctx->base.tb) & CF_USE_ICOUNT) { + gen_stop_exception(ctx); + } } #endif From 41c8ad3d920d6f1741b34bfdfaa72b43b45209b5 Mon Sep 17 00:00:00 2001 From: Daniel Henrique Barboza Date: Tue, 2 Mar 2021 11:10:18 -0300 Subject: [PATCH 19/20] spapr.c: remove duplicated assert in spapr_memory_unplug_request() We are asserting the existence of the first DRC LMB after sending unplug requests to all LMBs of the DIMM, where every DRC is being asserted inside the loop. This means that the first DRC is being asserted twice. Remove the duplicated assert. Signed-off-by: Daniel Henrique Barboza Message-Id: <20210302141019.153729-2-danielhb413@gmail.com> Signed-off-by: David Gibson --- hw/ppc/spapr.c | 1 - 1 file changed, 1 deletion(-) diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c index aca3ef9d58..b579830832 100644 --- a/hw/ppc/spapr.c +++ b/hw/ppc/spapr.c @@ -3703,7 +3703,6 @@ static void spapr_memory_unplug_request(HotplugHandler *hotplug_dev, drc = spapr_drc_by_id(TYPE_SPAPR_DRC_LMB, addr_start / SPAPR_MEMORY_BLOCK_SIZE); - g_assert(drc); spapr_hotplug_req_remove_by_count_indexed(SPAPR_DR_CONNECTOR_TYPE_LMB, nr_lmbs, spapr_drc_index(drc)); } From eb7f80fd26d73e7e1af105431da58971b1dba517 Mon Sep 17 00:00:00 2001 From: Daniel Henrique Barboza Date: Tue, 2 Mar 2021 11:10:19 -0300 Subject: [PATCH 20/20] spapr.c: send QAPI event when memory hotunplug fails Recent changes allowed the pSeries machine to rollback the hotunplug process for the DIMM when the guest kernel signals, via a reconfiguration of the DR connector, that it's not going to release the LMBs. Let's also warn QAPI listerners about it. One place to do it would be right after the unplug state is cleaned up, spapr_clear_pending_dimm_unplug_state(). This would mean that the function is now doing more than cleaning up the pending dimm state though. This patch does the following changes in spapr.c: - send a QAPI event to inform that we experienced a failure in the hotunplug of the DIMM; - rename spapr_clear_pending_dimm_unplug_state() to spapr_memory_unplug_rollback(). This is a better fit for what the function is now doing, and it makes callers care more about what the function goal is and less about spapr.c internals such as clearing the pending dimm unplug state. Reviewed-by: Greg Kurz Signed-off-by: Daniel Henrique Barboza Message-Id: <20210302141019.153729-3-danielhb413@gmail.com> Signed-off-by: David Gibson --- hw/ppc/spapr.c | 13 +++++++++++-- hw/ppc/spapr_drc.c | 5 ++--- include/hw/ppc/spapr.h | 3 +-- 3 files changed, 14 insertions(+), 7 deletions(-) diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c index b579830832..d56418ca29 100644 --- a/hw/ppc/spapr.c +++ b/hw/ppc/spapr.c @@ -28,6 +28,7 @@ #include "qemu-common.h" #include "qemu/datadir.h" #include "qapi/error.h" +#include "qapi/qapi-events-machine.h" #include "qapi/visitor.h" #include "sysemu/sysemu.h" #include "sysemu/hostmem.h" @@ -3575,14 +3576,14 @@ static SpaprDimmState *spapr_recover_pending_dimm_state(SpaprMachineState *ms, return spapr_pending_dimm_unplugs_add(ms, avail_lmbs, dimm); } -void spapr_clear_pending_dimm_unplug_state(SpaprMachineState *spapr, - DeviceState *dev) +void spapr_memory_unplug_rollback(SpaprMachineState *spapr, DeviceState *dev) { SpaprDimmState *ds; PCDIMMDevice *dimm; SpaprDrc *drc; uint32_t nr_lmbs; uint64_t size, addr_start, addr; + g_autofree char *qapi_error = NULL; int i; if (!dev) { @@ -3616,6 +3617,14 @@ void spapr_clear_pending_dimm_unplug_state(SpaprMachineState *spapr, drc->unplug_requested = false; addr += SPAPR_MEMORY_BLOCK_SIZE; } + + /* + * Tell QAPI that something happened and the memory + * hotunplug wasn't successful. + */ + qapi_error = g_strdup_printf("Memory hotunplug rejected by the guest " + "for device %s", dev->id); + qapi_event_send_mem_unplug_error(dev->id, qapi_error); } /* Callback to be called during DRC release. */ diff --git a/hw/ppc/spapr_drc.c b/hw/ppc/spapr_drc.c index 98b626acf9..8a71b03800 100644 --- a/hw/ppc/spapr_drc.c +++ b/hw/ppc/spapr_drc.c @@ -1231,12 +1231,11 @@ static void rtas_ibm_configure_connector(PowerPCCPU *cpu, /* * This indicates that the kernel is reconfiguring a LMB due to - * a failed hotunplug. Clear the pending unplug state for the whole - * DIMM. + * a failed hotunplug. Rollback the DIMM unplug process. */ if (spapr_drc_type(drc) == SPAPR_DR_CONNECTOR_TYPE_LMB && drc->unplug_requested) { - spapr_clear_pending_dimm_unplug_state(spapr, drc->dev); + spapr_memory_unplug_rollback(spapr, drc->dev); } if (!drc->fdt) { diff --git a/include/hw/ppc/spapr.h b/include/hw/ppc/spapr.h index d6edeaaaff..47cebaf3ac 100644 --- a/include/hw/ppc/spapr.h +++ b/include/hw/ppc/spapr.h @@ -847,8 +847,7 @@ int spapr_hpt_shift_for_ramsize(uint64_t ramsize); int spapr_reallocate_hpt(SpaprMachineState *spapr, int shift, Error **errp); void spapr_clear_pending_events(SpaprMachineState *spapr); void spapr_clear_pending_hotplug_events(SpaprMachineState *spapr); -void spapr_clear_pending_dimm_unplug_state(SpaprMachineState *spapr, - DeviceState *dev); +void spapr_memory_unplug_rollback(SpaprMachineState *spapr, DeviceState *dev); int spapr_max_server_number(SpaprMachineState *spapr); void spapr_store_hpte(PowerPCCPU *cpu, hwaddr ptex, uint64_t pte0, uint64_t pte1);