Tracy, Karnal, GOP discussed on Software Engineering Daily
So you would the test of karnal softest tests used that to exercise the kernel, of course, cutting testing is very important as the part of rally dating qualifying cardinal is really important because it is the foundation piece in any of the lyrics ecosystem you want to help those bits. So it it. So we have various methods to in the cardinal to verify things like, for example, we have if I am writing ape changing driver, for example. I would go torn on configuration options in the cardinal that make sure that my locking is seen. That means I'm not locking here and leaving the law leaving that lock not unlocking. It those lock and unlock are balanced. So I can I can go into the cardinal and say I want to turn on those options. So which which which is I do so and then in other cases, they we have other DiBa GOP shins that will go and say look at case on for example, are just stunned as Asian so we can turn dot on. And then it'll go make sure it's these are all not something that you would turn on in the field. Right. But you would do it during the Dell of -ment or you do it as validation mechanism. Before saying everything looks good. So you would go and say, hey, I'm going to turn on a DOE sanitizer. And tell me if I have any memory that. I am using after free or. Any kind of memory issues? I might have. That's one example. So we have various tools within the kernel configuration options compile time configuration options that we can turn on and debugged. So we use all of these mechanisms. And in addition, we in some cases, we have tracing we can turn on tracing on Chrissy events. Like, for example. You are you have a host. And then you are you have a VM running. So you say, hey, I want to take this device and assign it to the VM. So we can if we are interested in looking at, hey, how this process is working is it correctly working so we can go and turn on Tracy events. So during run time and then turn them off. If we want tracing is an interesting one because. Done. Some shows about in distributed, tracing I'm assuming tracing somewhat just non-distribution raising somewhat similar where it's measuring the late and sees through the different paths that it's that a call might be taking or measuring at least that the call is is making its way through the different lower levels. I guess maybe define what tracing in this particular case, these Tracy events if for us to get a feel for how it particular user action might be taking paths it's similar to that. It's kind of taking baths in the Colonel. And we want to make sure we are facing the path. It's taking it could be used in two ways. It could also be used how fast something happens performance racing. And the other aspect is is it taking the right paths in the kernel that we expect you to take right? So as a debugging tool, so those are. Two different uses of that. I think what I'm what I'm getting at is that we have multiple ways to debugged and test the Colonel, and then we use depending on the depending on what we are doing as Colonel downpours. We all we do we use all of those avenues to test the cardinal doing dveelopment, integration and debugging. So if I had some change, and then I ran a performance trace on it. And there was a small increase in latency due to that change. How would you know, if that performance penalty is is like a bug or is something that would be considered a regression because sometimes it's tolerable increase in latency? It's not a big deal. Nobody's ever going to recognize it is there some judgment that's involved in that process. Yes. Yes. Depending on how bad the performance impact is. And why that? Whites introduced you have to fill the bay. I go go about it is I have to I root costs and say, why did why am I seeing the change? So what happened is that change can the change be explained? Or is it is it avoidable. Maybe that is something in the path..