[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-ppc] [PATCH] spapr: check smp_threads < vsmt
From: |
Laurent Vivier |
Subject: |
Re: [Qemu-ppc] [PATCH] spapr: check smp_threads < vsmt |
Date: |
Thu, 8 Feb 2018 09:49:30 +0100 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.5.2 |
On 07/02/2018 21:21, Greg Kurz wrote:
> On Wed, 7 Feb 2018 17:17:30 +0100
> Laurent Vivier <address@hidden> wrote:
>
>> We ignore silently the value of smp_threads when we set
>> the VSMT value, and if smp_threads is greater than VSMT
>> kernel is going into trouble later.
>>
>> Fixes: 8904e5a750
>> ("spapr: Adjust default VSMT value for better migration compatibility")
>>
>> Signed-off-by: Laurent Vivier <address@hidden>
>> ---
>> hw/ppc/spapr.c | 17 ++++++++---------
>> 1 file changed, 8 insertions(+), 9 deletions(-)
>>
>> diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c
>> index 32a876be56..638b3cafd0 100644
>> --- a/hw/ppc/spapr.c
>> +++ b/hw/ppc/spapr.c
>> @@ -2294,15 +2294,7 @@ static void spapr_set_vsmt_mode(sPAPRMachineState
>> *spapr, Error **errp)
>> }
>>
>> /* Detemine the VSMT mode to use: */
>> - if (vsmt_user) {
>> - if (spapr->vsmt < smp_threads) {
>> - error_setg(&local_err, "Cannot support VSMT mode %d"
>> - " because it must be >= threads/core (%d)",
>> - spapr->vsmt, smp_threads);
>
> In this case, we'd error out because the user requested two settings that
> are known to be incompatible.
>
>> - goto out;
>> - }
>> - /* In this case, spapr->vsmt has been set by the command line */
>> - } else {
>> + if (!vsmt_user) {
>> /*
>> * Default VSMT value is tricky, because we need it to be as
>> * consistent as possible (for migration), but this requires
>> @@ -2313,6 +2305,13 @@ static void spapr_set_vsmt_mode(sPAPRMachineState
>> *spapr, Error **errp)
>> spapr->vsmt = 8;
>
> In this case, we'd error out because the user requested a setting that is
> incompatible with our default. Maybe worth a separate error message ?
>
> "Cannot support %d threads/core because it must be <= to default VSMT mode
> (8)"
I'm going to update the error message.
Thanks,
Laurent