The last days of OPW

My internship is almost over but the project has more way to go. So far, I created a new function which loops through all the AP's and brings them online. In order to support that, several changes were needed to be done in the boot path. Currently, I'm working on some TSC problems. Once I get over all the problems, I will start updating the code to make the flow nicer. :)

It has been a great summer working on Linux kernel, I learned a lot and enjoyed it very much. The best part is, I get to keep working on this project with PJ until the changes are merged. This was my first contribution to open source and my intent is to keep doing that for a long long time. :) Also I will keep blogging my experiences about the project, seeing my progress makes me content.

LinuxCon Europe is only one month away! My slides are ready, but I should work on my lightning talk. I can't wait to meet other OPW interns and the kernel developers!


Happy Coding

I have been started changing the code step by step. I'm trying to make the change as small as I can, so I'll make sure it won't brake the code. I change the code, commit it, rebuild and install, and hope my computer can boot. :)

I've started sending my patches to PJ and I had to update them according to his feedback. But with git, I found out that, remaking is much easier than updating a patch from a patchset. At least until I remember how to rebase a git tree, that was the case. While I was struggling with git, for numerous times, I thought I lost everything I've done. Then I found out how to use some very usefull commands; "git reflog" and "git cherry-pick". 

Also, LinuxCon/CloudOpen Europe is getting closer. I will be giving a lightning talk that explains what I've been working on. That is going to be a very exciting experience for me. I hope I will do well on my presentation. I should be working on my slides and finish them by September 12th.


First change

I finally start writing some code! Well, its nothing functional yet, just some small changes, but I'm getting there. And guess what, I'm not scared of touching the kernel code anymore. :)

Last week, we discussed with PJ about the modifications that should be done. First, I told him my ideas (even the ones I knew were useless), then he explained me a much simpler and solution. :)  So, I will be creating a new function called native_cpu_parallel_up. For my very first change, I copied native_cpu_up and renamed it native_cpu_parallel_up. And in my kernel tree, __cpu_up is calling native_cpu_parallel_up -not native_cpu_up-. Making this change on my computer isn't a problem at all. But I am using PJ's machine for debugging. So, I made my patch as in the first kernel patch tutorial, then exported it using "git format-patch -n1". Then, I copied my patch to PJ's other computer that I'm accessing remotely which also has my kernel tree. Finally I applied my patch to my branch. 

It is very amazing to see how fast a computer can build if it has 48 cpus. But it didn't boot so fast, hopefully that won't be the case for so long. :) 

That kind of small changing should help me to get used to comprehend debug messages, but they seem very unfamiliar for now. 


Week 3 & 4

I can't believe it has been almost a month since my internship started!

The second two weeks period was pretty much the same as the first one with a few exceptions.

This week PJ sent me my milestones, so I have the plans more or less now. I hope I can keep up with the schedule.

My first task after being comfortable around boot path for the APs, will be creating a new function and replacing it with the smp_init, cpu_up, _cpu_up and __cpu_up which is a function pointer to native_cpu_up and eventually calls do_boot_cpu. Right now, smp_init is looping through all the AP's and calls cpu_up().

The purpose of this project is bringing a parallel approach to waking CPU's up, so for the first step, the new function will loop over all possible AP's and call do_boot_cpu() on each of them.

So, I started to think about what could be a better approach, while I keep digging.

Also, this week I upgraded my Ubuntu to 13.04 because I had some problems with 12.04. Well, that had been a challenging process. First I upgraded it to 12.10, but after I rebooted my laptop, GUI didn't load! After many unsuccessful attempts, I was able to fix that problem. And then, I go on and upgraded it to 13.04. But it wasn't a flawless upgrade either. This time, I had problems with my wireless, web cam, fn keys etc. Following a research I realized my wireless driver was disabled! I was familiar with this problem and I knew how to fix that, I have learned it from Sarah Sharp during a debugging session at participation process of OPW. There is a very good explanation in the first patch tutorial for those who are interested.

That's all for now. :)


After the first two weeks

The first two weeks of my internship have passed (and a little bit more). I've mostly spend these days digging the boot codes. I have to say, that hasn't been easy for me. For example, I've spent a lot of time trying match the algorithm given by Intel's Software Developper's Manual with the boot codes. After a while I realised from my mentor's answers, that algorithm was BIOS's and I shouldn't be worrying about it. :) But my mentor (Peter P Waskiewicz Jr) is being very helpful and encouraging. As I started putting pieces together, the whole thing makes a little bit more sense to me. :) I can't wait to start making some contributions, however it will take some more time until I get comfortable around this boot puzzle.

On my second week, I started some git tutorials. I'm not familiar to git, it's a new world for me, but I'm getting used to it. There are some really good tutorials.

Here are some links:



My first two weeks of my OPW internship passed so quickly. I found out there are so much to learn, even more than I thought. But I will be fine, just keep digging... :)



Hi, welcome to my personal blog. This is my first personal blog, I hope you will enjoy it. :)

This summer I will be joining to Outreach Program For woman as an intern. I am accepted to work in x86 central boot code project and I am thrilled about it! So, I will be sharing my experiences. I hope my experiences will be beneficial and you will consider applying for the next round!