On Thu, Aug 7, 2014 at 4:05 PM, <Valdis.Kletnieks@xxxxxx> wrote: > On Wed, 06 Aug 2014 18:11:30 -0400, Nick Krause said: > >> 1.volatile long state; Is this line like jiffies for timers with >> regards to the keyword volatile? > > Why should it be any different? > >> 2.void *stack; Is this a pointer to the kernel stack for the process >> related to the process >> that the structure is keeping data for and is void to make it an >> opaque data type? Is this >> normally an int or some other data type when called with most processes? > > Under what conditions would it be an int? Think a bit. > >> 3.unsigned int flags; /* per process flags, defined below */, My only >> question about this is >> what flags are there and are these the ifdef statements in the struct? > > You explain what "ifdef statements in the struct" means, and maybe > we'll be able to explain that to you.. > >> 4.Why are we making the usage count atomic?(pretty obvious but real >> world reasons would be great) > > If you don't understand why usage and reference counts need to be atomic, > you've got a *lot* to learn about race conditions. > >> 8.What are the options like CONFIG_PREEMPT_RCU used for in terms of >> workloads or locking as I heard a lot about >> them on the threads on the lkml? > > Start looking at Kconfig files. Most of them are documented. Thanks Valdis, I was just curious if I was correct in my understanding of task struct, seems I am so far and yes I do known why we have reference counting, I was more curious about how to trace issues with this for debugging. Regards Nick _______________________________________________ Kernelnewbies mailing list Kernelnewbies@xxxxxxxxxxxxxxxxx http://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies