Hey, YC, thank you for so much for submitting your question today. YC says I have an opportunity to work with a company that wants to get into government contracts. They qualify for a few set-asides, but I qualify for more, including services-able advantage business, women-owned small business, economically disadvantaged women-owned small business. Since I have my company set up and we'll be working as an independent contractor with them, it'll be a better idea to work with them as a GovCon consultant and use my set-asides to help open more doors. All right. Well, you know, what I always tell people is this. And I'm going to say I love you before I make this statement. Set-asides do not get you contracts. And I know we want to believe that set-asides get us contracts. I know we want to believe it. Set-asides do not get you contracts. Being a good company, being a reputable company, having relationships, having past performance, having manpower, having team members, having meeting the qualifications, being able to demonstrate that you have the ability to do the activities, being able to demonstrate that you have the financial capacity to be able to take on a project of that magnitude. Those are the things that get you contracts. Now, if this partner of yours has all of those things and the only thing that you have is set-aside, then I think that they should take the lead. Now, you may run into an opportunity or situation where your set-aside does help give you an advantage over someone else who does not have a set-aside. And in that case, if that's the situation and the government allows you to be the prime, or the government allows you to take the lead and use your partner as a team member, as a prime subcontract relationship, then yeah, I think then I would do it. However, what I find is that I like to lead the strongest company, not with a set-aside, not with a certification, sorry. I like to lead with my strengths. I want to lead with all of the things that we mentioned before, right? And then let the government know that, hey, I happen to be service-assabled, woman-owned, small business, whatever the case may say.  They tend to treat you with respect and dignity that you deserve. Because as a successful business owner who's spent years laboring, struggling, to build their businesses, who've invested resources, maybe even risk family, risk relationships, to build up an organization to the size that it is, doing the things that they've done over all of these years, they deserve respect. And rightfully so, the government on top of all of this is risk averse, meaning they don't like risk.  I mean like, we don't want any risk. And so what's going to happen is like so many people out here who lead with their certifications, we find that people don't care.  And there's no reason to get offended if the people don't care. Because it doesn't mean anything. Your certification doesn't mean anything. I know. You hate to hear it. Let's take a moment of silence and let you think about it. Your certification, I'm sorry to tell you. And I know there's people out here that push certifications. I know, I know. And don't get me wrong. I use them all the time. I use A&As. I use Veteran Own. I use HubZone. I use GSA. I use all certifications. But I don't lead with them. I lead with my experience. I lead with the talent of our team. I lead with all of our history. I lead with our bonding capacity. I lead with our project manager's resumes. I lead with my superintendent's resumes. I lead with my quality control plan. I lead with my accident prevention plan. I lead with my health and safety plan. I tell the government how I'm going to protect them in the case of a situation that happens of any type of occurrence that may happen. I let the government know and I rest assured that I know the protocol. And if a fire were to happen, I know who to call. I know where to go. And not just me. My team members will know that as well because I train them because we have training protocol, right? And because we have active policy and procedures towards safety, something that when we show up to job site, we have a daily site meeting, right? Some of our guys stretch in preparation so they're not hurt on the job. We are going to protect you, Mr. and Mrs. Government, and make sure that we don't endanger the lives of any of the individuals at this facility. We're going to ensure that we're responsible for this contract from end to end and that any of our workers or any of the staff members or any of the people that we hire subcontracts that come onto this facility and they bring a hazardous substance. We're going to make sure that the hazardous substance that you've made aware of it, we're going to go through and make sure that you have its documented. We know this type of hazardous substance that's being brought in here because in the event or in the case that something were to spill and there was a fire that broke out, you would know how to properly treat that fire because that hazardous substance that created that fire, you are aware of it. And the person that has the certifications that has no safety plan, no environmental protection plan, no health plan, no COVID-19 screening protocol, that person, well, they're just going to leave you the chance. They're going to bring on the guy in the pickup truck. He's going to put the gas in a plastic container because he doesn't know that fuel does not go in plastic containers when it comes on military bases. It has to go in a metal container. But that guy or the girl, they don't know that because they're a certification and they're not trying to learn that because they're a certification. But don't worry, they're women on small business. They're service disabled small business. But when that fire breaks out and that gas that plastic gas can't explode and it's next to a 30 million dollar jet, you're going to think to yourself, did I really just save $10,000 in this contract? Did I really just save 20,000 going to the small guy? Because now you've got a 50 million dollar jet on fire mistake because this little contract, right, to strike the plane, the parking lot next to the plane. Yeah, it's not a lot of money, but it's extremely important. And I know that Mr. and Mrs. Contractor. I know that because I've been out here hundreds of times. In fact, you keep your planes right over here by the West Hangar, Hangar Sea. Do you know what Hangar Sea I did? I was the guy who put all the signs of Hangar Sea. In fact, let me give you a scenario. I remember being at Hangar Sea. Do you know that the red stripes that they have on the ground in Hangar Sea that says do not pass can shoot? Yeah, I painted those stripes. You paint them? I sure did. So guess what? I know what it takes to get out here on the base. I know what it takes to have my man. I've had, you know what, another thing. I've had men that were arrested before. Yeah. And you know what? I was truly embarrassed for them. I was embarrassed because I was given information by a contracting officer and actually a user of the facility that the doors that we were working on, the alarm was turned off. And when I came to find out that that alarm was not turned off. And so when we were doing our job and replacing the doors as per our contract, and we gave the proper notice to the facility in the building, and we asked the building manager and its host alarms were turned off. And of course, believing that everyone had done their property diligence and had done all the work, I get a phone call that my guys were being arrested. So I had to turn back around. By the way, did you happen to notice our facility is only a mile off base? So if there's any problems, I'm only one mile away from this location. Not. And so we were able to turn around, come back and resolve the situation immediately. You know those security forces guys on basis, you know how trigger a finger, they're happy. They're so happy because they have nothing to do. They're so happy to lay people down. But we were able to get out there. I showed them a copy of the contract. We were able to reach the building manager because I had my protocol sheet that I carry around with me. Yeah, the one that I turned on my proposal that I carry my daily log. So I had my protocol sheet. So I knew exactly the three guys that were working. I know what time they got there. I know where they were at. And I know the job that they're doing on my daily reports. Yeah, the same ones that I will send you each and every week as I work on this project. So if you're thinking about making a decision between someone who's done this dozens of times, hundreds of times and someone who has a certification, I don't want to tell you how to make up your mind with the thing, but just want to give you some things to think about and let you make the best decision for the government. Thank you so much for taking this time to spend with me. I hope I was able to shed some light on the difference between my company and the company next door. Good luck.


see you back here on this lovely Wednesday is nine a.m. in the morning. We have about 30 minutes till the market opens up. Hopefully I'm as well excited to see you, Egon and Lita. Good to see you all. Lawrence, Barb, everyone, and everyone on social media. Welcome back. Let me tell you a busy day going on. I am going to be at NASDAQ today. Don't forget.  Hopefully you guys register for those events. But regardless of all that, what the hell is going on with SAVE? Oh my God. We got to check out this stock. This is unbelievable because I think we got a good buying opportunity.  I will never fly. Anyone I spoke to said like I wouldn't, you know what? It's not worth the $30. Okay. And I personally never flew on it. But I sent my kid on it because I had no choice to put him on it because it was the only flight that left when we were going away and he was at school. My wife flew once, never did, never do it again. But apparently JetBlue pulled the plug on him. I wonder why. But I am not going to hold things personal against the stock because the stock when, I mean, obviously if you've heard of what happened here, stock took a very, very big hit. But when they pulled the plug, this thing just completely got demolished. Okay.  It's an opportunity to make money. I'm going to go trade it. That's what we are. We're traders. And you can see the stock had a really big bounce right around $6. And we're going to check out our level four on the top of it because it's been testing it. It's not breaking it, which is a very good sign where we have an opportunity to make some good money probably, hopefully on the stock save. And you know what? Market right now is down at 200 points. Yesterday we had same thing. We had a big down from was it was at 37, 600. We dropped down at 37, 200. Literally down like, you know, about 400 points. Is that right? Something like that. And now we're down another 200. We're opening up around the 37, 350. So opening somewhere around, yeah, we're down about 200 points right there. So we had a little bit of a comeback, but it looks like we're going to be down. But anyway, there's a lot. I looked around. There are a few stocks out there we're going to trade, but get your pen and paper ready because we're going to start writing these bad boys down. But before we do that, let's talk about what happened yesterday. So we know what happened would save. But listen, if you missed out on these stocks, they were just animals. AMD just did, does not want to stop. What was big about AMD, I want to point out is this, and I'm going to be showing it today at NASDAQ. And once again, we'll post that link and we'll broadcast it live on social media and also we will, you know, we'll send you the link in the cyber group room. But there was a tremendous iceberg order at 150. When it broke 150, boom, 160 like that. Okay.  That thing just basically just took off. What an unbelievable stock. This stock has been become. Why am I going to be able to go back two days? Computer froze? I don't know what it is. I don't know why I can't go back. There we go. All right. So you could see this thing has just been the last couple of 470. We're almost up about a hundred points. And once it broke through this major, major iceberg, which by the way, I'm going to show that one too. Today at NASDAQ, the 500 big seller out there, boom, this thing took off and went all the way to 570 in a couple of days. So listen, I know some of our expensive, you know, we rarely trade expensive stocks, but listen, you could trade small shares of it and you could still get into it. The iceberg orders do apply on the expensive stocks too. And you know what? That's why we do it. A couple of the stocks that are out there too, that did some of the good moves. I want to talk about someone, DWAC. You know what? Are you a Trump fan? Are you not a Trump fan? Previous President Trump owns the stock right here. This is the other Twitter. News came out, did really well. You could see how the stock did really pop and had a nice little move yesterday. And you know, it went from like 18 all the way to 22. So you know what? That's what trading is all about. It's all about, you know, it's all about volatility and stocks that make them move. And that one did pretty well too. A couple of the ones I want to point out too. The P-H-A-N is also, maybe some of you don't know this, but oh, spelled it up. P-H-A-M. Oh, P-H-A-N. Why is it not coming up? P-H-U-N. There we go.  You could see it went from like 15 cents to 50 cents, but then all of a sudden it just crapped out right at the open. And this is also why you want to hold overnight positions. But this one also did pretty well with it. Common stock offering. Oh, that's what happened. Common stock offering after the market closed. And that's why the thing basically collapsed. But that was a very cheap and expensive stock that made a big move over the course of the day. One last one that had a big pop and drop was ALES. We'll just look at that one really quick. So that one also, very, very funny stock. So this stock was in the $25 price range. You kind of build those big support levels, hovering around $1.30. It's been on a pretty good move.  I'm contemplating if it's starting to become a swing trade, because when I look at the long-term chart, you could see how it's starting to kind of like build this little foul-stove flag, which we call. All right. So anyway, that's what you missed yesterday. So right off the bat, right off the bat, save is back on the watch list. Okay. All right.  So I want to show you what's going on with save. So save right here, there is right around, you could see here on the buy orders, there's a 17,000 share buyer. And when I look at level four, where I have more aggregated ECMs out there, other exchanges, I see about 34,000 and over 24,000 between $5.90 and $6. Okay. So we got some good movement there. A lot of support levels at six. You know what? Look what happened in pre-market 8am, got to 6.20, went up to $7. That was a great, great run up. And now as resistance goes, I'm seeing some buyers right around 6.60 right now, at 6.50 for 29,000, 13,000. So the order, it starts to be pretty volatile. I mean, look, already trade 7 million shares. All right. You have a seller around 7.25. It looks like it tested. It came back down at about another one at 6.50. I'll show you right here. Here we go.   The way do you see these orders?  We're live from 9 a.m. to 4 o'clock every day. So once again, and also make sure you like the channel, give it a thumbs up and make sure you ring that bell so you know when we go live too. All right. But say back on the watch list, now JetBlue, you know what, didn't really affect it too much. JetBlue didn't really go anywhere due to the news. Okay. So that is Just Block Spirit and JetBlue from joining. So is that what it is? Okay. So that really is what the news that came out on that merger. But I don't know. Maybe they did them a favor. So that's why I'm looking at it. But JetBlue not really doing anything too much. So it's really saved as the one that you have to look at. So here's the news. We'll post it up. Do we got it on the, Rich? Let's post that up. I'm going to post that up in social media on our, there you go, on Restream. So you guys can see it. So that's basically the news that came out. So if some of you don't know what that news is, there it is. But let's go look what else is going on because there are a couple of stocks. One just came up right now as we speak. Okay. PTPI. It just made a move. Program trading right now. All right. PT, it was a PTPI. And we're getting some pretty decent iceberg orders. I see a nice one over there for about $1.60 and so on. But this stock, if some of you remember, we did trade this stock in July and it ran from $1 to $4.70. That was in one day. So she looks like she's moving up pretty good. She's up almost about 50%. Look at the volume. Look at that tier side. Look at that volume. Two million. Million one. Million two. Look at that. That thing is trading a lot of volume. It just came out with news obviously. I don't know what the news is, but obviously it's the only reason why it's making a big pop right here. TPPI. So that one's going on the watch list. So if you haven't grabbed onto that one, I don't have that on level four yet, but I will put it up. But I have the NASDAQ book viewer up there, which remember we're showcasing that today. I'm going to be that NASDAQ talking about this. All right. So make sure you watch the channel so you can see it live because I got some great examples on QQQ's, AMD, what else I have, Coinbase and NVIDIA. All right. Now here's another one that's moving too, but she's not really moving too much. I don't know what it is, but she's up about 25% BFRG and we're not getting a lot of iceberg orders, which kind of makes sense. You can see it's not really going anywhere, but it is the second biggest percentage gain or PTPI just out beat it. They're already in pre-market, but it's got 5 million shares, got a good price, got a good spread. Is that the news on there? Petro's pharmaceutical announces completion of his initial cohort of phase two. All right. All right. Well, that's the news. So for you guys on social media, if you guys want to know what the news is, that's the news on PTPI. All right. So there you go. I'll just get that because I'm blocking my face over there for you so so you guys can watch. So that's one, another one. Here's another one that's moving this morning with too expensive scrap that SLDP. Another one that's moving up about 12% two million shares, but she's really not going anywhere. I don't know, SLDP. This one, now look at that. We're at number five at the biggest percentage gainers and right there is where we drew up a line. Losers, debts, that stock was trading up a little bit. That was moving up pretty nice. And now you can see it's already backing off, kind of makes sense. This one ACXP, you remember we traded that in October, ran from $1 to $8, but on the big losers list, not really doing too much. Absolutely nothing there. New York Stock Exchange, absolutely nothing, zero. There's absolutely nothing. GoodRX is becoming a pretty interesting swing trade. She's been on a really good move lately. You know what? I've been seeing their commercials being advertised. I thought that has something to do with it. Maybe they're doing well. Maybe pharmaceutical stocks are inexpensive. If you don't know good, good RX, but looks like she's doing pretty well right now. And we got Luz and KIND on the losers list. KIND is getting to some support levels right around here back in November. Volume is a little light. Good spread. Let's go check over here on NASDAQ. Let's see what it looks like. KIND, what we got going on here. No volume. I have it default at a thousand, so it doesn't mean there's not too much out there. One last thing I want to bring up, which I thought was pretty funny. Tesla, Tesla, Tesla, Tesla. So what happened with Tesla? Have you guys saw what happened with Tesla over here on the left? Hold on. So I'm watching TV this morning and all these electric car Teslas, you know, with the freezing cold, got to remember the battery cuts in half. So they had the batteries froze, right, Wendy? You saw that? So Tesla's not doing too well because of that. Yeah, and let me tell you, it's all these electric cars. So you can see that these, they have a little issue with the electric cars in the cold weather. They were great in, you know, in the, in the nice weather. So, uh, and somebody told me that they, I mean, I was watching it, somebody's getting good deals. They got 50% off on the car, you know, because they can't sell them and they really can't. But cold weather problem, warm weather, if you can get a deal, go out and you probably, probably up there. But Tesla did not do too well. They got bad publicity because of it. Tesla stations were down, people were stuck and, you know what? That's what, that's what, that's what you get. And it's going to affect with the stock. So if we get an opportunity to short it, let's do it. All right. Big problem with Hertz, they are selling 20,000 from their fleet. No, well, you know what? I wanted to rent one. I went to Hertz, I went to rent an electric car. And I'm like, why would I pay an extra, you know, 30, 40 dollars for a day electric car? Let's get a regular gas car. I'm fine with it. But yeah, nobody's renting them. I want to pay for, remember, when you go rent the car, what do you rent it for? You want, you want something as economical and it's not your car. You know what I mean? You know, something as cheap as possible. And Hertz obviously not doing too well with those cars. So they're going to take a little big hit. By the way, remember Hertz? We used to trade Hertz. That was a great, great, great day trade. I remember that. We had so much fun trading Hertz. Remember the file in bankruptcy and that thing was like all over the place. I think we were trading at like in the 10, 20 cents or something like that. And then finally got bought out. But let's get ready for the market open up. All right. We got about, what do we got? About 15 minutes as usual. Oh, there we go. So listen, we'll be back in 15 minutes. There's not a very big list this morning. This is actually probably one of the worst lists I've seen all month so far. But don't worry. There's always something that will pop up. The market is down. You might consider shorting and we'll see, we'll see what's out there. But looking at what's going on, my big watch list, a lot, a lot of stocks are down right there. So once again, I'm going to be live today at NASDAQ. We'll post that link up there. I'll be on at two, at three o'clock, 2.45 Eastern time. We'll post that up there. And if you're watching on social media, once again, take your phone, scan that QR code, bring the bell, subscribe to the channel. And we'll live here every morning at 2.30, 9 a.m. at 2.30. And you could always, once again, always join our trading room. We're here all day. So if you find something, traders say something. And if you're new here to see to you and you are a trial member in the room, please don't buy anything. It's not a teaching room. It's a trading room. So just sit and watch and watch how we kind of work together and we think together, right? Good luck everyone. Happy trading. And we'll see you in about 15 minutes when the market opens up.


Hello everyone, welcome to our talk. I'm Xiaozhe He. I'm a graduate student at National Yangming Jiao Tong University and my major is computer science. In this talk, I will focus on RCU, which is a well-known lock-free synchronization mechanism. I will introduce what it is, when to use it, and the comparison with other mechanisms. In addition, this talk also covers the current status and the cases of RCU in the Linux kernel or user space. This is today's online. I will first give a brief introduction to RCU. Then I will talk about RCU's current status and total test in the Linux kernel. Finally, we will take a look at the user space RCU. First of all, let's take a look at RCU. I'm going to explain it in a quick and simple way. Read copy update is a lock-free synchronization mechanism. Its basic idea is splitting update procedures into two different phases, removal and recommendation. To cover this design, RCU has to maintain multiple versions for recite coherence. These are three important concepts in RCU, removal, grace period, and reclamation. In the removal phase, when an updater wants to remove data items, it removes old references to data items within a data structure, so that subsequent readers cannot gain an old reference to it. In addition, if an updater wants to revise data items, it removes old references to data items and replace them with new data items. In this phase, the updater can run concurrently with readers. Second, in the grace period, the time interval between a removal and a reclamation phase. It represents that some readers are still accessing old references to data items, so updaters cannot reclaim memory in this phase. In the reclamation phase, a grace period has elapsed. It guarantees that readers no longer have access to old references during this phase, so the updater can reclaim the removed memory during the above removal phase. Why don't we just use mutex or other locking mechanisms? But is that use RCU? Besides the lock-in of avoidance, we can also get good scalability. Using RCU can bring some benefits to performance and scalability. This is a simple benchmark using user-space RCU. The x-axis is a number of the processes, and the y-axis is the completion time. We can compare completion time in mutex and several RCU flavors. It is easy to see the advantage of RCU upscalability. The origin line is the mutex lock. It's always important to use the right tool for the job, even RCU. RCU works best on read mostly workloads, whereas Dell and inconsistent data is not a problem. In contrast, RCU is not suitable for update mostly workloads, but using RCU can still provide web-free RCU primitives for real-time usage. Using RCU correctly, we can get some benefits like excellent performance and scalability for readers, and RCU to lock-back deluxe, etc. This is a table that compares RCU with other common mechanisms. Both RCU and HEDA point have low overhangs for reading and traversal. RCU can support web-free read operations, but reclamation of unbounded objects can be delayed for as long as a single thread is delayed. So, roughly, RCU is simpler to use than HEDA pointers, because it protects all protectable objects. I will now introduce some case studies about RCU. First of all, let's take a look at RCU's current state in the Linux kernel. RCU was added to the Linux kernel in 2002, and its implementation was rewritten and redesigned many times. There are also several RCU flavors in the kernel. I will introduce these implementations and flavors in the following slides. There are three different RCU implementations, classic RCU, tree RCU, and tiny RCU. Classic RCU uses a global CPU mask to record the status of all CPUs. The base set represents that the CPU is in a gray period, and a bit clear represents that the CPU is in a quiescent state. Since CPU mask is a global variable that is accessed by all the CPUs, we need the luck to protect the CPU mask. However, it suffers from poor scalability, because all the CPUs have to acquire luck before changing their own status. Classic RCU was already replaced by tree RCU in version 2.6. Tree RCU is one of the current RCU implementations in the Linux kernel. It changes the original architecture to a hierarchical tree structure, which can bring some benefits. The most significant improvement is reducing luck contention, since it separated CPUs into a two-level tree structure. It can become that 1024 CPUs. If there are more than 1024 CPUs, it will become a three-level tree automatically. Tiny RCU is also one of the current RCU implementations in the Linux kernel. To specify to use Tiny RCU, you can simply set the config smp to n and rebuild it. This implementation has some features. When a CPU passes through a quiescent state, it means a gray period has elapsed. Second, it also provides a quite small implementation in the Linux kernel. Earlier, I introduced RCUs implementation. Next, I will introduce more RCU flavors in the Linux kernel. What is RCU flavors? The flavor is a type of RCU used in a specific situation. RCU in the Linux kernel has many flavors. There are non-preemptible and preemptible RCU, and there are also four other flavors. There are bottom-half flavor, scheduled flavor, sleepable, and tasks RCU. Both bottom-half flavor and scheduled flavor disable something. The difference between lamb is that one disable soft IRQ and the other disables preemption. Bottom-half flavor RCU which calls local BH disable function in recycle critical sessions was developed to withstand the network-based denial of service attacks. So, it guarantees that RCU can complete gray period under indefinite soft IRQ. Schedule flavor disables preemption under a non-preemptible convict. It has the same implementation as RCU. It is noteworthy that calling RCU read unlock scheduled may enter the scheduler. It will have sound overhead as low priority tasks. Sleepable RCU allows blocking and sleeping in the recycle critical session. So, if you want to block or sleep in a recycle critical session, you should use it. However, why is sleeping prohibited within classic RCU recycle critical sessions? Because sleeping implies there's a contact switch, which is a quiescent state. And RCU requires that quiescent states never appear in recycle critical sessions. Finally, tasks RCU is a task-based RCU rather than CPU-based. In the normal RCU case, only one process can hold a protected reference on any given CPU. However, the trampolines used for chasing may use an old-version reverence. And it is not possible to mark a recycle critical session. So, tasks RCU is designed to figure out when no process or a task can hold such a reference. Here is a brief introduction for some commonly used RCU APIs. Since 2019, RCU but have RCU scheduled and RCU preempt are consolidated. Before consolidation, these flavors are too confusing to avoid bugs, so developers wanted to find a long-term solution. Thus, all of these flavors use the same synchronized RCU and co-RCU functions. But it kept the original Relock APIs because it is beneficial for finer grant checking provided like lockdown. Lastly, a last, as I mentioned before, APIs of RCU tasks are quite compact. It doesn't have Relock APIs. Now, let's take a look at the RCU torture. RCU torture is a kernel module which was designed to make sure that linear kernel RCU actually works. A thorough torture test is helpful for us to build a robust program. If the test failed, we can find where has box, but even if the test passed, it doesn't mean RCU is perfect. Perhaps that test is not comprehensive enough to find all the bugs. We can use quite a simple command to run the RCU torture test. The execution time depends on the CPU and different arguments. After the execution, we will get a report under the rest directory. This image is a summary of my test. We can customize our own test by adjusting arguments. For example, the first line specifies the test you want to execute. The second line specifies the duration of each test. The 720 means 720 minutes. The last line turns on the kernel address sanitizer during test execution. If you want to know more configurations about RCU torture, you can check out the link in the bottom right corner. We can find all configs under the RCU torture slash configs slash RCU directory. Now I will analyze some test cases. 3.2, a 3.0.2 is a case designed for testing 3 RCU. The config RCU fanouts and config RCU fanouts live specify the fanouts of non-live nodes and live nodes of the tree respectively. Lower fanout values can reduce lag convention, but also increase the memory overhead. So the fanout is in this picture. This is a live node fanout and this is non-live fanout. 3.10 is a case designed for testing 3 RCU in a large system which specifies 56 CPUs. The non-preemptible tree-based RCU implementation is appropriate for several class SMP build. Tiny little one case disables SMP support, so it tests the tiny RCU implementation under Uniprocessor. The rest of the cases will not be covered in this presentation. If you are interested, you can check out the link in the bottom right. Next, let's move on to user space RCU. User space RCU is an RCU library in user space. It provides not only URCU APIs, but also some APIs about concurrent data structures and atomic operations. There are also several flavors of user space RCU, and each flavor match to one linking argument. These are linking arguments. First of all, linking the application with live RCU is the most preferred way to use this library. It has good performance and grass-period detection on grass-period detection and resized space. It dynamically detects kernel support for this mem-barrier function. If it is unsupported, it fallbacks to live URCU and B and has lower resized space. The URCU signal flavor is faster than the previous URCU memory-barrier version, but it requires a signal for implementation, typically SIG user 1. And the QSBR flavor has the fattest resized space due to little resized overhead. However, it is more intrusive than other flavors, since every reader has to co-quiescent that periodically. The last flavor is bulletproof. It is designed to help addressing library to hook on applications without modifying these applications. If you want to build a library function and have no control over thread creation, the bulletproof RCU is your only viable choice. All RCU initialization and thread registration functions become no operations here. Now let's take a look at a simple book borrowing system with RCU. One version is implemented in the kernel space and the other is implemented with pthread and URCU library in the user space. The reader checks whether the book is in the borrowing system use a list for each entry RCU macro. Both examples use a redlock and unlock to define the resign critical section and use a for each macro. Yeah, this macro to find the book is use a URCU API for each to find the book. The updater can add books or modify the status. When it wants to modify the status of one book, it will require the lock to prevent interference from other updaters. Then it can use a macro to replace the old node. Use a spinlock to prevent the interference and you can use list replace RCU to replace the old node in the data structure. Then the updater calls synchronize RCU to detect the end of a grasp period so it can release the unused memory. You can call synchronize RCU here and call k3 here and in the user space it also calls a synchronize RCU here and free the removed node here. Thanks for listening. This is the end of my presentation. Any questions? And here has some references. If you are interested, you can check out it.


In this lesson, we'll be playing with some fill-in-the-blank stories. Usually with fill-in-the-blank stories, you have a template that you can fill in to create similar stories that have very amusing differences. In this lesson, we also learned how to make an abstracted template from two stories that have already been created. Abstraction is the art of removing differences and details so that you can see how one solution might work for many different problems. It's very helpful in computer science because it allows us to create functions that can be useful in several situations.


Item number, SCP-242, Object Class, SAFE. Special Containment Procedures, SCP-242 is kept at a home located in New Mexico, procured by the Foundation on date undisclosed. The original owner was an out-of-state landlord who had problems keeping it rented. After retiring, he moved there, but disappeared after three days. The home is unremarkable, and is inhabited by Dr. R. R. and Dr. R. R. who pose as a married couple with no children. The backyard is defined along its perimeter with a cinder block wall, approximately two meters high, in accordance with the homes in the general vicinity. The pool is monitored at all times by a single level 1 guard, who also covers as the couples live and cook. Human monitoring was added after incident 2421. Everything or waiting in the pool is strongly discouraged, and any access to the pool by anyone other than Class D personnel for experimental reasons is forbidden. Description SCP-242 is a swimming pool, approximately 4.5 meters wide by 9 meters long, with a depth ranging from 1 meter deep on both ends to 1.5 meters deep in the center, and a total volume of approximately 53,000 liters. It has a dual waterfall feature and in-pool vacuum unit, and stares on one end. Any substance when placed into the pool will eventually be transmuted into sterile water, which will remain sterile even after being removed from SCP-242 and introduced to a non-sterile environment. A sample taken from SCP-242 and poured into a container of water that had been tinted with red food coloring did not mix, but rather stayed together as a non-missable bubble. Subsequent examination of samples shows them to be nothing more than pure sterile water. The length of time required for the transmutation to complete is dependent on the nature of the substance placed into SCP-242. Ordinary river water sampled from New Mexico was completely sterilized in 7 minutes. And pond water taken from New Mexico was sterilized in 18 minutes. 50,000 liters of cold tar was converted over the course of 12 days. While the pool contains nothing but sterile water, there is no apparent action of any of the features of the pool. Once a non-water substance is placed into the pool, the water jets and waterfall will come on, even if disconnected from any power source. The pool vacuum, if attached, will also activate and drive around the bottom of the pool, even through extremely viscous liquids. There is no cycling of water into or out of the filtration system. Pipes leading to the filtration system have been completely removed, and shown to be empty and dry while the pool contents were being sterilized. Addendum Incident 2421 During a time when the home was vacant but being monitored by a hidden video camera, a man and woman, apparently in their early 20s, scaled the rear wall and gained access to SCP-242. They proceeded to undress and go swimming, along with two vinyl inflatable rafts acquired from the shed in the backyard. After the water jets came on, the female was startled and indicated she wanted to leave. The male claimed that it was just the automatic timer coming on to clean the pool, and there was nothing to worry about. The couple continued to swim and engaged in intimate activities. 24 minutes after the jets started, the female was heard to say that the water was really warm and made her feel tingly. The male agreed, and they both climbed onto their respective rafts and fell asleep holding hands. 29 minutes after the jets started, both of the rafts popped within 4 seconds of each other, and the couple was again immersed completely in the water. At this time, significant frothing of the water began, with a deep red color being given off from the subject's locations. Subjects were heard to scream loudly, and both attempted to exit the pool. Before exit was possible, the couple went under the surface, the frothing stopped, and the pool went from red to clear approximately 48 seconds later. The decision was made to institute a live guard at the pool. After two weeks, the story was leaked to the press that the couple had eloped to an unknown location, somewhere in Mexico. Research Log SCP-242 Experiment number 17 Abstract What are the general properties of the water contained in SCP-242? Does the water retain any SCP-like properties when removed from the location? Proposal Determine if the water is safe for human consumption, both while in the SCP and outside of it. Required equipment and personnel Two titanium atmospheric dive suits altered to fit the testing criteria. Two class D personnel of like gender and race, age-range to within three years. One food-grade titanium barrel, 190-liter capacity. One remotely controlled overhead crane, capable of lifting 20 metric tons. One automated titanium siphon system. One wireless communication system for separate links to and from both dive suits. One home fumigation testing unit used to create a neighborhood subterfuge. Estimated budget. Data expunged. Status. Approved. Results. Transcript attached for review. Contact Dr. Wernher for a full lab report. Doctor. Alright. Once you've entered the dive suit, we'll lower you into the pool. All you need to do is take a drink from the metal straw by your mouth when instructed to do so. Test subject A. Uh, I can't see out of this thing. Shouldn't there be glass here? Why is it all metal? Doctor. That's classified. Just get into the dive suit, please. Sound of overhead crane followed by a loud splash. Doctor. Is the barrel full yet? Test subject B. Yep. All full. Doctor. Good. Remove the siphon and get into the other dive suit. You will not be placed into the pool. Just drink from the metal straw fed from the barrel when instructed to do so. Test subject B. So if I ain't going in the pool, why am I getting into that thing? Doctor. Again, that is classified. We went over this in the debrief. Just do as instructed, please. Mechanical sounds. Test subject B. Damn it's dark in here. There's no light? How will I find the straw when I- Oh. There it is. Doctor. SCP-242. Test 17. Time zero set. Test subject A. Please take a sip from the straw and tell me what you experience. Test subject A. Uh. It's pretty warm. There's a weird chemical aftertaste, but it doesn't last long. Doctor. Good. Thank you. Test subject B. Please take a sip from the straw and tell me what you experience. Test subject B. Hmm. It's cool. And tastes like, well. Nothing. It's good. Doctor. Okay. A loud, long belch is heard, followed by laughter from test subject A. Doctor. Test subject A, what is going on? Please take another sip. Test subject A. Wow. I've got lots of gas. Ew. This stuff is really warm now, and it stings my mouth. How much longer is this test? Doctor. Okay. Test subject B. Please take a sip. Test subject B. Yep. Same as before. No taster smell at all. The water. Is this water? It's cool and pleasant. Doctor. Test subject A. Please repeat the process. Test subject A. Ow. This is really hot now. And hey, what the. Is that one of my fillings? What the. Is this. Doctor. Please just report your experience as succinctly as possible. Fillings can be replaced. Test subject B. Please repeat the process. Test subject B. This is boring, doc. Seems like a lot of hassle just to give us a drink of water. Doctor. Test subject A. Please repeat. Choking and gurgling sounds. Doctor. Test subject A. Please respond. Sound of a muffled scream, followed by electrical shorting. Doctor. Test subject B. Please repeat. Test subject B. Ah. Yep. Still nice. Doctor. Okay. Test subject B. We're moving to the next phase, which is a full medical analysis. But you'll need to, uh, decompress before you can exit the suit. It will take several hours, so get comfortable in there. Please take a drink every time the indicator light goes on. And let me know if anything changes. The urination adapter is needed. Test subject B. Understood. Damn. That was easy. Testing was ended due to internal electrical and subsequent structural failure of atmospheric dive suit A. Retrieval was not attempted. Complete loss of atmospheric dive suit A occurred after approximately 15 hours. Test subject B was extracted after 17 hours. No physiological changes were detected. Subject B's urine was recovered and showed no extraordinary properties. Subject B has been released to the Class D pool group for future reuse. The water remaining in the barrel was left to evaporate and did so within the expected time frame. No residue of any kind remained. End log. Note, the use of SCP-242 for possible disposal of any SCP-related materials that are difficult to manage is being considered at this time. Contact Dr. R. for details and or permission for testing. Lesson complete. If you missed the previous orientation, go watch SCP-241, Good Home Cooking, right now. Or for the complete course, watch this playlist.