Hi Nigel, Thanks for the response. On Sat, Nov 12, 2011 at 6:36 AM, Nigel Cunningham <nigel@xxxxxxxxxxxx> wrote: > Hi Mohan. > > On 11/11/11 19:35, Mohan wrote: >> Hi, >> >> I am testing hibernation on a PPC4xx board. >> I have noticed that kjournald is still running even when the hibernation >> image is being saved to disk. >> >> On looking at the code in fs/jbd/journal.c the kjournald thread >> has a check "if(freezing(current))" which i assume is to >> check if hibernating and to freeze the kjournald thread. >> But since the kjournald thread has the PF_NOFREEZE flag >> set it does not freeze the kjournald thread. >> >> 1. Can any one tell me in what case the kjournald thread is frozen? > > All kernel threads were originally treated as unfreezable. Looking at > the history of kjournald in git, the support for freezing kjournald has > been there since before 2.6.12-rc2 (before git began to be used). I'd > therefore say that the code may never have been used and kjournald may > never have been frozen. > I also felt that the kjournald thread is never frozen. But it seems to have the if(freezing) check and the code for suspending that got me wondering. >> 2. Or is there no problem if it is not frozen during hibernation ? > > Since the hibernation code seeks to make an atomic copy which is then > saved, there shouldn't be a problem in the case of the vanilla kernel > and uswsusp. TuxOnIce might possibly have a problem if kjournald had > work to do and tried to do it (though a BUG_ON that the patch adds in > the block would capture the attempt at submitting I/O and stop > corruption occuring). > As of now I am only using the hibernate support from the vanilla kernel. And as you rightly point out there seems to be no problem in the hibernation image that is created, I am able to resume successfully. I am having other problems for which i feel the running of kjournald during hibernation acts as a trigger. (will be debugging them separately relates to 16K PAGESIZE and hIbernation image saved to swap file on / ) >> 3. Would it be a bad idea to set the kjournald thread freezeable using >> "set_freezable()" ? > > I think it would be a good idea. Even with the atomic copy (ignoring ToI > since it's out-of-tree), it will simplify the debugging process if > things that shouldn't be running don't run during hibernation. > If it is alright i can prepare a patch for fs/jbd/journal.c with the set_freezable() and refrigerator() -> try_to_freeze() (like in mm/vmscan.c) code changes. I would like to get it reviewed and ok'd if posible. Please let me know where (who all) i have to post it to. > Regards, > > Nigel > -- > Evolution (n): A hypothetical process whereby improbable > events occur with alarming frequency, order arises from chaos, and > no one is given credit. > Regards, Mohan _______________________________________________ linux-pm mailing list linux-pm@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linuxfoundation.org/mailman/listinfo/linux-pm