All of lore.kernel.org
 help / color / mirror / Atom feed
From: Pierre Morel <pmorel@linux.ibm.com>
To: Cornelia Huck <cohuck@redhat.com>
Cc: kvm@vger.kernel.org, linux-s390@vger.kernel.org,
	frankja@linux.ibm.com, david@redhat.com, thuth@redhat.com,
	drjones@redhat.com
Subject: Re: [kvm-unit-tests PATCH v11 8/9] s390x: css: msch, enable test
Date: Thu, 9 Jul 2020 16:38:39 +0200	[thread overview]
Message-ID: <ddd20e88-6cda-6261-ff85-e4bb82872ab4@linux.ibm.com> (raw)
In-Reply-To: <20200709162210.7fe6f9cb.cohuck@redhat.com>



On 2020-07-09 16:22, Cornelia Huck wrote:
> On Thu, 9 Jul 2020 15:58:07 +0200
> Pierre Morel <pmorel@linux.ibm.com> wrote:
> 
>> On 2020-07-09 15:52, Cornelia Huck wrote:
>>> On Thu, 9 Jul 2020 15:41:56 +0200
>>> Pierre Morel <pmorel@linux.ibm.com> wrote:
>>>    
>>>> On 2020-07-09 15:30, Cornelia Huck wrote:
>>>>> On Thu, 9 Jul 2020 15:12:05 +0200
>>>>> Pierre Morel <pmorel@linux.ibm.com> wrote:
>>>>>       
>>>>>> On 2020-07-09 13:40, Cornelia Huck wrote:
>>>>>>> On Thu,  9 Jul 2020 10:07:47 +0200
>>>>>>> Pierre Morel <pmorel@linux.ibm.com> wrote:
> 
>>>>>>> (...)
>>>>>>>          
>>>>>>>> +/*
>>>>>>>> + * css_msch: enable subchannel and set with specified ISC
>>>>>>>
>>>>>>> "css_enable: enable the subchannel with the specified ISC"
>>>>>>>
>>>>>>> ?
>>>>>>>          
>>>>>>>> + * @schid: Subchannel Identifier
>>>>>>>> + * @isc  : number of the interruption subclass to use
>>>>>>>> + * Return value:
>>>>>>>> + *   On success: 0
>>>>>>>> + *   On error the CC of the faulty instruction
>>>>>>>> + *      or -1 if the retry count is exceeded.
>>>>>>>> + */
>>>>>>>> +int css_enable(int schid, int isc)
>>>>>>>> +{
>>>>>>>> +	struct pmcw *pmcw = &schib.pmcw;
>>>>>>>> +	int retry_count = 0;
>>>>>>>> +	uint16_t flags;
>>>>>>>> +	int cc;
>>>>>>>> +
>>>>>>>> +	/* Read the SCHIB for this subchannel */
>>>>>>>> +	cc = stsch(schid, &schib);
>>>>>>>> +	if (cc) {
>>>>>>>> +		report_info("stsch: sch %08x failed with cc=%d", schid, cc);
>>>>>>>> +		return cc;
>>>>>>>> +	}
>>>>>>>> +
>>>>>>>> +	flags = PMCW_ENABLE | (isc << PMCW_ISC_SHIFT);
>>>>>>>> +	if ((pmcw->flags & flags) == flags) {
>>>>>>>
>>>>>>> I think you want (pmcw->flags & PMCW_ENABLE) == PMCW_ENABLE -- this
>>>>>>> catches the case of "subchannel has been enabled before, but with a
>>>>>>> different isc".
>>>>>>
>>>>>> If with a different ISC, we need to modify the ISC.
>>>>>> Don't we ?
>>>>>
>>>>> I think that's a policy decision (I would probably fail and require a
>>>>> disable before setting another isc, but that's a matter of taste).
>>>>>
>>>>> Regardless, I think the current check doesn't even catch the 'different
>>>>> isc' case?
>>>>
>>>> hum, right.
>>>> If it is OK I remove this one.
>>>> And I must rework the same test I do later
>>>>     in this patch.
>>>
>>> So, you mean checking for PMCW_ENABLE? Or not at all?
>>>
>>> (I'd check for PMCW_ENABLE.)
>>>    
>>
>> -       if ((pmcw->flags & flags) == flags) {
>> +       if ((pmcw->flags & (PMCW_ISC_MASK | PMCW_ENABLE)) == flags) {
>>                   report_info("stsch: sch %08x already enabled", schid);
>>                   return 0;
>>           }
>>
>> I keep both, otherwise I return 0 without setting the ISC.
> 
> Ah, I missed the 'return 0'.
> 
>>    then I have another error:
>>
>>    retry:
>>           /* Update the SCHIB to enable the channel and set the ISC */
>> +       pmcw->flags &= ~(PMCW_ISC_MASK | PMCW_ENABLE);
> 
> Maybe ~PMCW_ISC_MASK is enough?

yes

> 
>>           pmcw->flags |= flags;
>>
>> and finaly the same as the first later...
>>
>> -       if ((pmcw->flags & flags) == flags) {
>> +       if ((pmcw->flags & (PMCW_ISC_MASK | PMCW_ENABLE)) == flags) {
> 
> I think you can keep that as-is.

I don't thing so, I just stored the pmcw.
if ISC is stored as 3 and I want 1 it is a false positive.
Same error as you showed me before.
?

> 
>>                   report_info("stsch: sch %08x successfully modified
>> after %d retries",
>>                               schid, retry_count);
>>
>>
>> is better I think.
>> What do you think?
> 
> It's probably the right direction.
> 

Thanks,
Pierre

-- 
Pierre Morel
IBM Lab Boeblingen

  reply	other threads:[~2020-07-09 14:38 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-07-09  8:07 [kvm-unit-tests PATCH v11 0/9] s390x: Testing the Channel Subsystem I/O Pierre Morel
2020-07-09  8:07 ` [kvm-unit-tests PATCH v11 1/9] s390x: saving regs for interrupts Pierre Morel
2020-07-09  8:07 ` [kvm-unit-tests PATCH v11 2/9] s390x: I/O interrupt registration Pierre Morel
2020-07-09  8:07 ` [kvm-unit-tests PATCH v11 3/9] s390x: export the clock get_clock_ms() utility Pierre Morel
2020-07-09  8:07 ` [kvm-unit-tests PATCH v11 4/9] s390x: clock and delays calculations Pierre Morel
2020-07-09  8:07 ` [kvm-unit-tests PATCH v11 5/9] s390x: define function to wait for interrupt Pierre Morel
2020-07-09  8:07 ` [kvm-unit-tests PATCH v11 6/9] s390x: Library resources for CSS tests Pierre Morel
2020-07-09  8:07 ` [kvm-unit-tests PATCH v11 7/9] s390x: css: stsch, enumeration test Pierre Morel
2020-07-09  8:07 ` [kvm-unit-tests PATCH v11 8/9] s390x: css: msch, enable test Pierre Morel
2020-07-09 11:40   ` Cornelia Huck
2020-07-09 13:12     ` Pierre Morel
2020-07-09 13:30       ` Cornelia Huck
2020-07-09 13:41         ` Pierre Morel
2020-07-09 13:52           ` Cornelia Huck
2020-07-09 13:58             ` Pierre Morel
2020-07-09 14:22               ` Cornelia Huck
2020-07-09 14:38                 ` Pierre Morel [this message]
2020-07-09  8:07 ` [kvm-unit-tests PATCH v11 9/9] s390x: css: ssch/tsch with sense and interrupt Pierre Morel
2020-07-09 12:13   ` Cornelia Huck
2020-07-09 13:18     ` Pierre Morel
2020-07-09 13:33       ` Cornelia Huck
2020-07-09 13:38         ` Pierre Morel

Reply instructions:

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

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

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

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

  git send-email \
    --in-reply-to=ddd20e88-6cda-6261-ff85-e4bb82872ab4@linux.ibm.com \
    --to=pmorel@linux.ibm.com \
    --cc=cohuck@redhat.com \
    --cc=david@redhat.com \
    --cc=drjones@redhat.com \
    --cc=frankja@linux.ibm.com \
    --cc=kvm@vger.kernel.org \
    --cc=linux-s390@vger.kernel.org \
    --cc=thuth@redhat.com \
    /path/to/YOUR_REPLY

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

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.