Skip to contentSkip to conversation

3.7 RC1

DISCUSSION K. Y. Srinivasan 3 participants 8 messages Oct 22, 2012 – Oct 25, 2012

lore
Share & tools
lore
#0 lore raw

While testing 3.7 RC1 I discovered that invoking the function orderly_poweroff() from an interrupt context will trigger an ASSERT(). This was not the case till recently. The comment preceding the orderly_poweroff() function claims that this function can be invoked from any context and in the current Hyper-V util driver, we support host-driven orderly shut down of the guest by invoking this orderly_poweroff() function in the context of the message callback. This code has been working for a very long time and it is broken now. Is my assumption that orderly_poweroff() could be invoked from the interrupt context a wrong assumption?

Regards,

K. Y

#1 lore raw
Quoted 9 lines · K. Y. Srinivasan

While testing 3.7 RC1 I discovered that invoking the function orderly_poweroff() from an interrupt context will trigger an ASSERT(). This was not the case till recently. The comment preceding the orderly_poweroff() function claims that this function can be invoked from any context and in the current Hyper-V util driver, we support host-driven orderly shut down of the guest by invoking this orderly_poweroff() function in the context of the message callback. This code has been working for a very long time and it is broken now. Is my assumption that orderly_poweroff() could be invoked from the interrupt context a wrong assumption?

Can you check 3.7-rc2? If that also fails, care to do a 'git bisect' from 3.6 to 3.7-rc1 to find the problem patch?

thanks,

greg k-h

#2 lore raw

Will do and I will report back.

K. Y

Quoted 31 lines

-----Original Message-----
From: Greg KH [mailto:[email protected]]
Sent: Monday, October 22, 2012 7:34 PM
To: KY Srinivasan
Cc: [email protected]; [email protected]; [email protected]; [email protected]; [email protected]
Subject: Re: 3.7 RC1

Quoted 2 lines · K. Y. Srinivasan

While testing 3.7 RC1 I discovered that invoking the function

orderly_poweroff()

Quoted 2 lines

from an interrupt context will trigger an ASSERT(). This was not the case till recently. The comment preceding the orderly_poweroff() function claims that

this

Quoted 3 lines

function can be invoked from any context and in the current Hyper-V util driver, we support host-driven orderly shut down of the guest by invoking this orderly_poweroff() function in the context of the message callback. This code

has

Quoted 2 lines

been working for a very long time and it is broken now. Is my assumption that orderly_poweroff() could be invoked from the interrupt context a wrong

assumption?

Can you check 3.7-rc2? If that also fails, care to do a 'git bisect' from 3.6 to 3.7-rc1 to find the problem patch?

thanks,

greg k-h

#3 lore raw
In reply to Greg KH
Quoted 20 lines

-----Original Message-----
From: Greg KH [mailto:[email protected]]
Sent: Monday, October 22, 2012 7:34 PM
To: KY Srinivasan
Cc: [email protected]; [email protected]; [email protected]; [email protected]; [email protected]
Subject: Re: 3.7 RC1

Quoted 2 lines · K. Y. Srinivasan

While testing 3.7 RC1 I discovered that invoking the function

orderly_poweroff()

Quoted 2 lines

from an interrupt context will trigger an ASSERT(). This was not the case till recently. The comment preceding the orderly_poweroff() function claims that

this

Quoted 3 lines

function can be invoked from any context and in the current Hyper-V util driver, we support host-driven orderly shut down of the guest by invoking this orderly_poweroff() function in the context of the message callback. This code

Quoted 7 lines

has

Quoted 2 lines

been working for a very long time and it is broken now. Is my assumption that orderly_poweroff() could be invoked from the interrupt context a wrong

assumption?

Can you check 3.7-rc2? If that also fails, care to do a 'git bisect' from 3.6 to 3.7-rc1 to find the problem patch?

Looks like this problem is fixed in rc2.

Regards,

K. Y

#4 lore raw
In reply to Greg KH
Quoted 20 lines

-----Original Message-----
From: Greg KH [mailto:[email protected]]
Sent: Monday, October 22, 2012 7:34 PM
To: KY Srinivasan
Cc: [email protected]; [email protected]; [email protected]; [email protected]; [email protected]
Subject: Re: 3.7 RC1

Quoted 2 lines · K. Y. Srinivasan

While testing 3.7 RC1 I discovered that invoking the function

orderly_poweroff()

Quoted 2 lines

from an interrupt context will trigger an ASSERT(). This was not the case till recently. The comment preceding the orderly_poweroff() function claims that

this

Quoted 3 lines

function can be invoked from any context and in the current Hyper-V util driver, we support host-driven orderly shut down of the guest by invoking this orderly_poweroff() function in the context of the message callback. This code

Quoted 7 lines

has

Quoted 2 lines

been working for a very long time and it is broken now. Is my assumption that orderly_poweroff() could be invoked from the interrupt context a wrong

assumption?

Can you check 3.7-rc2? If that also fails, care to do a 'git bisect' from 3.6 to 3.7-rc1 to find the problem patch?

The problem still persists in 3.7-rc2. Sorry for the false positive; we had a script problem that indicated that the problem had gone away. Manual testing has shown that the problem persists. We will investigate it further.

Regards,

K. Y

Quoted 6 lines

thanks,

greg k-h

#5 lore raw
In reply to K. Y. Srinivasan
Quoted 9 lines · K. Y. Srinivasan

While testing 3.7 RC1 I discovered that invoking the function orderly_poweroff() from an interrupt context will trigger an ASSERT(). This was not the case till recently. The comment preceding the orderly_poweroff() function claims that this function can be invoked from any context and in the current Hyper-V util driver, we support host-driven orderly shut down of the guest by invoking this orderly_poweroff() function in the context of the message callback. This code has been working for a very long time and it is broken now. Is my assumption that orderly_poweroff() could be invoked from the interrupt context a wrong assumption?

You can't call orderly_poweroff() from interrupt context.

regards,
dan carpenter

#6 lore raw
Quoted 21 lines

-----Original Message-----
From: Dan Carpenter [mailto:[email protected]]
Sent: Tuesday, October 23, 2012 1:47 AM
To: KY Srinivasan
Cc: [email protected]; [email protected]; [email protected]; [email protected]; [email protected]; [email protected]
Subject: Re: 3.7 RC1

Quoted 2 lines · K. Y. Srinivasan

While testing 3.7 RC1 I discovered that invoking the function

orderly_poweroff()

Quoted 2 lines

from an interrupt context will trigger an ASSERT(). This was not the case till recently. The comment preceding the orderly_poweroff() function claims that

this

Quoted 3 lines

function can be invoked from any context and in the current Hyper-V util driver, we support host-driven orderly shut down of the guest by invoking this orderly_poweroff() function in the context of the message callback. This code

Quoted 6 lines

has

Quoted 2 lines

been working for a very long time and it is broken now. Is my assumption that orderly_poweroff() could be invoked from the interrupt context a wrong

assumption?

You can't call orderly_poweroff() from interrupt context.

Thanks Dan; I am curious to understand the basis for your assertion.
As I noted earlier the documentation for this function clearly says it can
be called from any context. Furthermore, __orderly_poweroff(), the helper
function allocates memory with the GFP_ATOMIC flag set. Lastly, the behavior
of orderly_poweroff() has been such that this function could be called from interrupt context for a very long time and something has changed now. For what it is worth, there are other users in the kernel (in 3.7 RC1) that are invoking the orderly_poweroff() function from interrupt context other than the Hyper-V shutdown handler: fsl_hv_shutdown_isr() in drivers/virt/fsl_hypervisor.c. I suspect there are other users as well that have made this similar assumption.

Regards,

K. Y

#7 lore raw
Quoted 28 lines · KY Srinivasan
Quoted 21 lines

-----Original Message-----
From: Dan Carpenter [mailto:[email protected]]
Sent: Tuesday, October 23, 2012 1:47 AM
To: KY Srinivasan
Cc: [email protected]; [email protected]; [email protected]; [email protected]; [email protected]; [email protected]
Subject: Re: 3.7 RC1

Quoted 2 lines · K. Y. Srinivasan

While testing 3.7 RC1 I discovered that invoking the function

orderly_poweroff()

Quoted 2 lines

from an interrupt context will trigger an ASSERT(). This was not the case till recently. The comment preceding the orderly_poweroff() function claims that

this

Quoted 3 lines

function can be invoked from any context and in the current Hyper-V util driver, we support host-driven orderly shut down of the guest by invoking this orderly_poweroff() function in the context of the message callback. This code

Quoted 6 lines

has

Quoted 2 lines

been working for a very long time and it is broken now. Is my assumption that orderly_poweroff() could be invoked from the interrupt context a wrong

assumption?

You can't call orderly_poweroff() from interrupt context.

Quoted 10 lines

Thanks Dan; I am curious to understand the basis for your assertion.
As I noted earlier the documentation for this function clearly says it can
be called from any context. Furthermore, __orderly_poweroff(), the helper
function allocates memory with the GFP_ATOMIC flag set. Lastly, the behavior
of orderly_poweroff() has been such that this function could be called from interrupt context for a very long time and something has changed now. For what it is worth, there are other users in the kernel (in 3.7 RC1) that are invoking the orderly_poweroff() function from interrupt context other than the Hyper-V shutdown handler: fsl_hv_shutdown_isr() in drivers/virt/fsl_hypervisor.c. I suspect there are other users as well that have made this similar assumption.

Aw crap. I was wrong. Sorry about that.

regards,
dan carpenter