So, Loads of the Fallen received a patch earlier on today, today is the 17th of October 2023 and a lot of people have been saying that certain Viagra farms have been nerfed out of the game. Well today guys, I test and try the best few we know of in this game, but it was mainly just a couple that I think are the best anyway. How's it going guys? My name's DPJ and if you do enjoy the video, leaving a like really helps out and if you like what you see and want to see more, be sure to subscribe. Okay, so we have the AFK Viagra farm. This one a few people are confused by. Before the latest update, before the latest patch, pre-patch, what would happen here is, after a certain while, the Viagra that the Red Reaper within the Umbaram drops does start to get lower. I think after about between 5 and 10 of his own deaths, his Viagra goes down to about 1800 Viagra per death. This still means you can farm it AFK, but you won't get anywhere near as much. I think it tops out for me anyway. When I was doing this, it was roughly 30 minutes to an hour where we'd start to see those decreases in that Viagra. It doesn't mean you can't still do this, it just means that the drops will be lower and lower. After about the 45 minute mark to an hour mark, you'd probably see between 70 and 90,000 Viagra.  But the patch arrived this morning. I've already saw a couple of videos. I saw a video posted 20 minutes after the patch had gone live claiming that this had been nerfed out of the game. How are you standing here long enough to even test this? Well, what I can tell you guys is it has not been nerfed. It still works. I am running under the latest update. You can see that right here guys. I downloaded this earlier on today. I've been sat in this spot. I actually did it earlier right after the patch. I sat here for about 45 minutes or so. I didn't have the footage, but I got about 75,000 of that Viagra. Considering I'm quite a high level, I'm at a level 70 or so. I'm still getting decent amounts of Viagra. I've tried and tested it now. I've been sitting here guys. This video currently, as I'm recording it, has been going on for 28 minutes. I've been standing in the same spot. So yeah, the Viagra we're about to pick up guys is after about 28 minutes for me and my level. My level is, as I'm just going to have a look, I am a level 89 at a minute and most of my levels guys have come from this farm right here. There's only one other farm I've been doing which I'll showcase to you in a second. It's faster than this, but I mean you have to run about. But yes guys, okay, so we're just going to go and pick these up.  But again, this is after about 30 minutes now of the video recording. I will speed up the process so you see this quickly. So we're going to get now, let's have a look how much we've got. We've got 17,000 Viagra. So I've got 17,000 Viagra after about, I'm just going to leave them for now, about 30 minutes. Probably about 29 minutes in total. Let me stand in there. Just a few minutes to get there. So yeah, it definitely does work whether or not it's as quick as it was or Viagra have been dropped or it's limited on your level. The farm still works. The AFK farm definitely still works. So if I was to do that for about an hour guys, I'd probably get another 20K on top of that. Maybe, but again, it depends on your level as well. It could drop, but it definitely still works guys. So hey, now if you don't know where this is and how you do this, you need to come to this, the vestige of blind Agatha. This is the bathroom vestige. This is where all that good stuff happens. So hey, if you don't know where this is, again, we are at the vestige of blind Agatha. Now what you want to do from this point guys is, if you don't know how this AFK farm works, you want to enter that on your state. Just like so. You can do this in here, you can do this out there. It doesn't really matter. Let this guy just click on to me. And then guys, we're just going to run past this dude. Just like so. Run past here. Take care of your right. A hard right. Jump over here. Then you want to come down this way guys. Come down this way.   Then you want to lock onto this platform. I don't want to fall next to it. I need to put it towards me. Put it towards me. Grab this one. Yeah. Lock onto that one. Put it towards you. Just like so. And then what you do guys is, you go up to the very, very edge of this platform. Right here. As close as you can get without falling off. Just about there. I'm going to stay there. AFK here. You will earn that free Viagra while you do other things. It really is as simple as that. That's a farm and it definitely still works after the late patch. Don't let no one tell you any different. Viagra, you may not earn as much Viagra in the long run, but it definitely still works as an AFK farm. So let's grab these while I'm here. Why not? Why not? Why not? Why not? Why not? There we go. Okay. So now I'm just going to go, I'm going to showcase you the other farm, which I think is quicker in the long run in regards to how much you will earn at that Viagra, but it is an AFK. So from the same restage point people, we want to rest just like so. Just like this. Just like that. And when it lowers, because Xbox Series X lowered in times, it ain't the quickest.  When you hit the floor, when you die, you'll respawn at the top.  And you get all that Viagra items, Viagra, all that good cheese. Then guys, just simply run backwards and rest again. Now I think you get like between six or seven hundred every time you do this. So it's pretty quick and dependent on your loading times and whether platform you play on. I mean, you can earn quite a lot of Viagra doing this. I mean, I've seen a couple of other farms in this direct area, but I do believe I was the first one to throw yourself off the map and then kill yourself and get rid of Viagra for all these enemies. So you get roughly about a hundred for that guy. And then you get this bunch here, which is about 500. If it's anything more than 500, it's because there's an enemy up there that dies too, which a lot of people ain't clocking on too. But he definitely does go out with a bang people. I'll show you a couple more times. I mean, it's so, so easy to do this. It's so, so easy. I mean, a lot of people are going out here. They're trying to fight this dude.  And I'll just run past him. Run past him and run off the edge. These definitely still work 100% on a quick to the main menu in a minute to show you what version I am on. I'm pretty sure it's like <IP_ADDRESS> or something like that. Something like that. So to get all this Viagra, run back in, take a nap and rinse and repeat, guys. It really is that easy. It really is that easy. I need to respect, actually. And I've just been trying to, like, balance out my stats, balance out my board. That's what I've been doing. Okay, so again, one more time. Run off. Simple as that. All those Viagra gains. Nice and easy. My dog's growling at my front door. He really is. So what I'm going to do now, guys, is I'm just going to quickly go to the main menu. I'll actually spend a point first, just in case. So if I quick to main menu, you'll see the version that I am on. But there we have it, guys, guys. If you enjoyed the video, leaving a like really helps out. If you like what you see and want to see more, be sure to subscribe. And hopefully, guys, I will see you on that next one.


Hello, everyone. Welcome to our talk on Discontiguous Siders for Dynamic Cluster Scaling. Let's jump into some introductions. My name is Rahul Zoshi. I am a software engineer working at Google on GKE Networking. Hello, everyone. My name is Sudheep Modi. And I am a software engineer working in the same team as Rahul, GKE Networking. And the two of us have been working on this problem for about over a year. So what is the goal of the talk today? We want to present our proposal to support discontinuous ranges for pod IPs. And the reason why we want to support discontinuous ranges is to enable flexible IP address allocation, as well as remove one of the major bottlenecks for scaling a cluster. By the end of this talk, our goal is that you understand the problem we are trying to solve. You understand why it's important to solve this problem. We'll introduce some of the difficulties and challenges in solving the problem. And finally, we are going to present a proposal on how to actually solve the problem. So that's the agenda today. I'm going to talk about how Kubernetes pod IP allocation is done. One thing to note is I'm talking about vanilla open source Kubernetes. I'm not talking about some of the bells and whistles that cloud providers add and how Kubernetes works out of the box, basically. I'm going to talk about some potential improvements that we can make to the way we do pod IP allocation today. We are going to talk about cluster cider in Kubernetes. And cluster cider is this one single pod IP range that you provide today. And then finally, we are going to talk through our proposal on enhancing and supporting discontinuous pod IP ranges. And finally, we will talk about some of the ongoing work that's going on in the community at the time of this recording. So this is a typical way a cluster comes up for a customer. You have your network IP space. And when you bring up a cluster, Kubernetes asks you this question, give me a cluster cider. The cluster cider is this one large range from which all pod IPs are allocated. And in our example cluster over here, we have allocated a slash 17 range for this new cluster. And this gives us roughly 32,000 IPs for that cluster. In addition to the cluster cider, Kubernetes also asks you to provide a node cider mass size. The way this works is every single time a new node comes up, the range allocator for Kubernetes internally chops up the large cluster cider into blocks of the node cider mass size. So in this case, 24 is the node cider mass size. So what is happening is every time a node comes up, the range allocator is going to allocate a slash 24 from the cluster cider range to that node. And the way IP allocation works after the pod cider is assigned is independent on each node. There is no global synchronization. Each node is going to look at its own pod cider and pick an IP address from that pod cider independently of any other node. So there's no coordination. The interesting bit is that you also need to over provision these IPs on the nodes. The reason being things like daemon sets being upgraded or pods going up and down, you don't want to reuse your IP addresses. So you want this buffer. And so even in this case, when you have a slash 24 assigned to the node, you're not going to run anywhere close to 250 pods. You're going to run fewer pods. So this exacerbates the use of IP addresses in Kubernetes. So what are the problems with these IP allocation? The first problem is that as soon as you want to create a cluster, the customer needs to go and allocate a large-ish IP address range for pods right up front, regardless of how big or small the cluster is going to be eventually. So let's say the users tend to either overestimate or underestimate their requirements. We've seen errors on both sides with our customers. Sometimes the user thinks that the cluster is going to grow to like 250 nodes, but you may not end up putting so many workloads on it. So at that point, if you over provision your cluster, there's an IP address wastage. However, the other problem is also true, where you don't know upfront that your cluster is going to grow so large, and then you start running out of IP addresses. So at the time of cluster creation, you have to decide how many IPs to allocate, and this isn't easy. The second problem is that each node is going to get the same range for the pod sider. So if you have certain nodes which are of lower capacity, you have to give them a slash 24 and waste some IP addresses, even though you cannot run close to the number of pods that the larger nodes can run. And some larger nodes may be able to run more pods than what you provisioned for. So they may be able to run more than 250 pods in this case, but you can't do that because you run out of IP addresses. So both sides of the problem are in effect. And then the most interesting and difficult problem is that once you've provisioned this cluster and your cluster, let's say, grows over time, in this example, if it's grown to 128 nodes, there is absolutely no way to add another node because you've run out of IP addresses. We've seen customers run into this problem all the time, and there is no solution. The only solution is to either migrate certain workloads from this cluster to another cluster, or you recreate the cluster with a larger range and start from scratch all over again. And neither is a very palatable solution. So what are the potential improvements we can make to this? The first is to add support for increasing this cluster side or somehow. And you want to do this in a manner that doesn't cause any downtime. If you run out of IP addresses, there should be a way to allocate more IPs, and I don't want any workloads to suffer. And if you did this, it addresses the most difficult challenge that I spoke about in the last slide where you can actually now scale your cluster where you earlier could not. The second improvement we can make is we can allow specifying discontiguous ranges for pods. And this is true even at cluster startup time. There are certain customers where we see they don't have a large chunk of a slash 17 lying around, but maybe they have smaller slash 20s lying around, and they want to still create a larger cluster. So you need to be able to specify these discontiguous pod ranges at cluster startup time, or this can come when you expand your cluster. And this addresses the problem that a lot of customers run into when they have a fragmented IP space. And then finally, you want to accommodate the different nodes and the different sizes of nodes as in order to more efficiently use IPs across the node. So smaller nodes can get less fewer IPs and larger nodes can get larger IPs. You need to be able to specify this. The biggest challenge on this is going to be the dependency on cluster cider. So what Kubernetes components are today depending on this large one cluster cider range. So we had to go and investigate that. And then we wanted to go and remove the dependency on this single contiguous cider block. So Raul's going to talk about the work that we've done and that we are still doing. Thanks, Sadeep. When we started looking through the Kubernetes code to find out what components we're using cluster cider, we found two major components. The first is the node IPAM controller. This component runs as part of the cube controller manager and it performs the allocation of the per node IP ranges. This is what we described earlier in the presentation. It chops up your large slash 17 into smaller slash 24s. This obviously needs the cluster cider so it knows what range it's allocating. The second component is the cube proxy. This is Kubernetes network proxy that runs on every node. The cube proxy is responsible for maintaining the network rules for things like service resolution and handling intra and intra cluster traffic. So pod to pod traffic as well as traffic that is external to your cluster that wants to ingress. Let's first discuss how cube proxy uses the cluster cider to make its routing decisions and then we'll talk about how we remove the dependency from cube proxy. One of the rules that cube proxy references cluster cider with is the one for redirecting pod traffic destined for external load balancer vips. So in this scenario, the user has configured a service as an external load balancer and they've received a load balancer IP that would normally redirect traffic outside of the cluster to backends inside of the cluster. However, if a pod uses that external load balancer IP to try to access the service, the cube proxy takes note of that. And the cube proxies goal in this case is to prevent the traffic from unnecessarily egressing your cluster, hitting the external load balancer and then just coming back in. So instead it short circuits the entire process by redirecting the pods traffic directly to a service backend. In this case, the cube proxy looks at its definition of the service and decides to route the traffic to pod for one of the existing backends and then the clusters network is able to take care of that routing. And then on the return path, the cube proxy would reverse these matting decisions so that the pod thinks it's spoken with a service. In this case, cube proxy is using cluster cider to determine whether the traffic is originating inside of the cluster or if it's coming from outside of the cluster. Another rule where cube proxy is using cluster cider is to masquerade off cluster traffic to service VIPs within the cluster. So in this case, you have some sort of traffic outside of your cluster that wants to talk to a service VIP. Maybe you have a forwarding rule in your network that sends traffic to one of your nodes. In this case, cube proxy wants to examine the packet and it realizes that it's destined for a service that it knows about. However, it can't just forward the packet to one of the backend pods. It's not sure if the backend pods have connectivity with external IP. Maybe there are firewall rules or other egress or protections in place. However, it does know that the node it's running on can speak with this external IP. So it uses the node as an additional hop. It rewrites the packet using a SNAT to swap out the external IP for the node IP. And then using the standard service resolution, it performs a DNAT to reference one of the backend pods. And then cube proxy sends the packet on the cluster network towards the backend. On the reverse path, it again, reverses all of its netting decisions and forwards the response out to the external IP. Again, in this case, cube proxy is using the cluster cider to determine the origin of traffic and whether or not it's coming from outside the cluster or from a pod inside the cluster. The key insight that we had when looking at these rules was that cube proxy doesn't need to know about the entire cluster cider, about the IPs of every single pod. It only needs to know about the pod IPs for pods running on that particular node. Because every node's cube proxy is running, we can rely on every single cube proxy to properly make a DNAT and SNAT decisions at the point that they encounter traffic. If you see traffic for a particular VIP that doesn't seem to be coming from your own pods, you can be very confident that that traffic came from outside of the cluster as every other node would have made a correct routing decision. So in that case, you can rely only on your internal pod cider without worrying about the cluster's global cider. This is part of the proposal that was recently, that was added into the open source community. This KEP talks about these examples and a few more and walks through in greater detail exactly the changes that have been made. Thanks to this KEP, the cube proxy is capable of programming IP tables and IPvS using only the local pod cider as opposed to the global cluster cider. This KEP also added a brand new flag to enable this behavior called detect local mode, which once used with node cider will program using just the local cybers. This feature has been available since Kubernetes release 1.18. This KEP and the changes to cube proxy removed the single biggest Kubernetes assumption around a contiguous cider block. Now that cube proxy can function using just its own pod cider, we don't need to rely on a monolithic cluster cider and we can turn our attention to the allocation side of things. On the allocation side of things, we're back to the node IPAM controller that we'd mentioned earlier. This is the component that allocates each node its actual pod IP or a pod IP block. When you drill down into it, it has two modes that it can operate. The first of these is the range allocator. This is what Kubernetes runs by default. This accepts a cluster cider and a node cider mask which is how big of a block to assign to each node and it chunks up the cluster cider and then allocates that out writing the per node chunks in the node pod cider spec. This is exactly the algorithm that we described earlier in the presentation. The other mode of operation is the cloud allocator. In this case, the cloud allocator relies on your cloud provider to do the per node allocation. It simply queries the cloud provider, retrieves the information for a particular node and then writes that back into the node pod cider. As this model suggests, there's a lot of flexibility with how the node IPAM controller behaves. All Kubernetes at a core is interested in is that every node gets its pod IP block. So end users could come in and write their own custom controller that runs instead of node IPAM and performs whatever sort of IPAM is relevant for them. However, we wanted a more useful operation right out of the box where users don't need to go configure their own IPAM controller just to expand their cluster cider size. This brings us to the second enhancement proposal to enhance node IPAM to support multiple cluster ciders. This is a kept that as if the recording is inactive development with the community. It has two major components. The first is a brand new Kubernetes resource called the cluster cider config. The details of this object are still in flux, but broadly speaking, it has an IP cider block from which every node gets its pod IP chunk. It has a per node mask size which tells the allocator how big of a chunk to allocate to each node. And then there is a node selector which defines which nodes are targeted by this cider config. Complementary to this resource is a brand new allocator. This allocator would watch the cluster cider config object and then perform the node IP allocations based on that information. The allocator would support adding and deleting cider configs without restarting your cluster so you can dynamically resize. It would handle multiple IP families. So IPv4, IPv6 addresses right out of the box. And it can allocate variable size ranges to every node. As we mentioned earlier, your smaller nodes can be a slash 24, your larger ones can be a slash 22. This slide obviously glosses over a lot of subtle nuance and detail. These discussions are happening in the community and in the KEP. If you are interested and you have thoughts or questions, please feel free to comment on the KEP. We'd love to hear your ideas. Now that Rahul has gone through the details of our proposal, I'm going to take an example to walk us through whether our proposal actually solves the problem that we were trying to solve. Let's take this example. In this case, a user wants to create a new Kubernetes cluster. The cluster is expected to grow to about 32 nodes and each node, the user wants to allocate run about 100 parts. And that means with some buffer, we want to allocate a slash 24 to each node. Now, the first thing you want to do when you're creating this cluster is you want to allocate a cluster-sitter range. However, in this particular network, the user does not have a slash 19, which would have been required to run the entire cluster of 32 nodes. Instead, the user has a couple of slash 20s lying around which are completely discontinuous. Now, with our proposal, what the user does is creates two different cluster-sitter conflicts, range one and range two, each which comes from a different-sitter range, a slash 20, and each says allocate a per node mass size of 24 to the nodes that come up. Now, note that in this case, we are not specifying any node selector. This means that our IPAM logic, the new range allocator that we are going to be writing, is going to pick a range of slash 20 fro from any one of these two ranges, range one or range two, and allocate it randomly to the nodes that come up. The other thing to note here is that if you were to create a cluster for like a legacy cluster, you can specify the IP-sitter block which is the same as the cluster-sitter and the old node-sitter mass size becomes the per node mass size and you specify just one range. So this is backward compatible. If you wanted to just migrate from the old way of creating things to this new resource. Now, let's say the cluster grows to 32 nodes and then for some reason, there are more workloads to be added to this cluster. You are out of the pod-sitter size. With our proposal, what you do is add another range. So in this case, I have another third range, range three, <IP_ADDRESS>. I'm still allocating a slash 24 to each node and I create this new range object and I am going to now be able to expand the cluster beyond 32 nodes that were there. Again, I'm not using any pod-selectors here, so the ranges are going to be chopped up randomly. Now, what happens if I want to run a set of nodes where I know that I'm not going to be running so many workloads? Let's say I want to just run 30 pods on the new nodes. In this case, I don't want to waste a slash 24 on that node. So the user, what the user can do is create a yet another cluster-sitter config. In this case, this is range four and then the user says, I want to allocate only a slash 26 to these nodes instead of a slash 24. So in this case, the user says per node mass size is 26 and also populates the node selector logic to say only do this for these nodes where instance type is small. Note that the IP-sitter block is the same as range three. So what we are trying to convey here is that the <IP_ADDRESS> slash 20 range can be chopped up into slash 24 or slash 26. The backend IPAM controller handles this logic for you. That is the state of this world when we are recording. Right now, we are trying to work with SIG network and get this proposal vetted out, which brings us to future work. With the new Kube proxy changes, anyone can now write an IPAM controller and plug it in and do this continuous pod-sitters. And certain cloud providers already do this as well as certain CNI also have the ability to do this. Our motivation for this project is to support this feature out of the box for Kubernetes so that anybody can make use of this. So we are actively working with SIG network on refining this proposal. We are iterating on this and figuring out what the final design should be and then the next step would be to implement, which leaves you with a call to action. Anyone who is interested in this or have ideas around how we should be doing this, please join us in a SIG network meeting. Please comment on the cap or even talk to us. And we will be happy to take your feedback and address any use cases that we may not have addressed. That brings us to the end of our presentation. We thank you for your time. Thank you for taking the time to listening to us. And if you have any questions, we'll talk in the Q&A session. Thank you everyone.


How's it going everyone? Caleb here with Leighton Sports Cards. Next up tonight it's going to be 2022 WWE Revolution. One box, hobby box break. This is number 16. Random pack style. There's the box. This is the order. We'll be ripping the packs in one pack per spot. Good luck everyone. 2022 top series jumbo case after this. Last WWE break in the night. Four of these to get the night rolling for y'all. Here we go empty. Derek A. first pack. Good luck to you. Vir Mahan. Dolph Ziggler. Ricochet. Very cool there. That is going to be Ivar and Eric on the fractal. Nice one there. Not number fractal. And the Farouk. Farouk. This card for you at the end. There you go Derek. Daniel H. second pack. Good luck Daniel. Okay Dakota Kai. It's going to be Montez Ford. That's John Cena. Finn Balor. There you go. It's going to be Astro. And a shockwave. Lava. Very nice. There you go Big E. 10 of 10. Very nice. Congrats Daniel H. Fantastic it there. 10 of 10. Lava. That's fantastic. Congrats on that Daniel H. Little lava action to get the night going. And then there's that Finn Balor again. Wait there was a card with nothing on it. What do you mean nothing on it? I mean John Cena. John Cena. Yeah there's nothing on it. You totally got it man. Wow you got me good. This is like what do you mean nothing on it? Oh man this guy. So yeah the website's linked right there in the chat American. Check out the website. Check out the breaks that we have available. This break here is already all sold out. You can check out all the live breaks on the break schedule. You can check out personal boxes under the personal boxes section. Josh B. third pack. Dude you got me so good. I was like what are you talking about the names missing there? Indy Hartwell. We got Tony D'Angelo there for you Josh. Alexa Bliss. It's going to be Godfather. Very cool on the astral. There you go Astral Godfather. And then a mankind in the rock. Very cool. The rock and sock connection. You go man. Thanks again Josh.  That's weird they make the cards with nobody on it. There's just a floating head. Fourth pack is Derrick. Good luck Derrick. That is funny. Riddle. Biggie. Raquel Gonzalez. Nice. It's going to be a Bella twins there. Brie Bella. Nikki Bella. It's going to be the 149 on the cosmic. Take that. There you go. Nice one Derrick. And then Ray Mysterio Vortex. Not a bad pack at all. Next one up here is for Daniel H. Good luck man. Fifth pack. Carmella. Marcel Barthel. Shelly. Groove John Cena. Very cool. You go nice. Grat Daniel H. And Undertaker. Not a bad pack either. You go. Last three packs here. Spots six seven and eight. Derrick A. Thanks Derrick. Doesn't when you say Marcel Barthel doesn't something just not like no it does not sound correct. 100% Gigi Dolan. I like Stutter and just kind of you get to it a little bit slow. Liv Morgan. Cameron Grimes. Astro Shamus. You go Derrick. And Supernova. Going to be eight young there. Very cool. Next pack. Candice LeRae. Well we got Nash Carter. Grayson Waller. Nice. Giving me Saray this time. Fractal. And it is JBL. One more Derrick. Shayna Baszler. Kofi Kingston. Now Pete Dunn. Nice little finish there. Stone Cold Steve Austin. The 199. Angular. Solid close man. And there you go Derrick A. Nice Angular. Shockwave is duo drop. I appreciate it. Thank you again everyone for filling up these WWE Revolution Breaks. I will have all of these cards protected up for you and sent right out to you. Thanks again so much.


Hi, this is Michelle Getzinger and I'm with the Pittsburgh Your City show, the Freeport Edition. And we're over here to another exciting new business that's opening up. It's called Washed Away and it's a new laundromat. You wonder, why it's so exciting about a laundromat? Well, let me show you. Come on and check it out. So welcome to Washed Away, the new laundromat and Freeport. And it's just not any normal laundromat. It's got so much to offer. Let me show you. First off, we have a four load capacity washing machine here. It's high efficiency, eco-friendly, and you can put four loads of laundry in it. And if you have anything that's really heavy duty, soiled, whatnot, drop cloths, you can throw them in there for an additional couple of bucks and really wash them. Ladies out there that have horses, no horse blankets allowed here. Next row here, we have eight eco-friendly two load washers. Super easy to use. You just flop the money in there. It uses a very little bit of detergent. It's super, super high efficiency. And then you also have eight dryers to go along with it. And you come on down here. You need cash. We've got a change machine. You need some bouncer tied or Clorox. You can move everything right here at your fingertips. There's also a cash machine. But wait, we're not done yet. Come on, check this out. Look at this place. This is amazing. It's got quarry and countertops, folding tables. You can go outside and hang out if you want. But the best part is the lounge area that's coming up next. Coolest aspect about this laundromat is it's got a lounge. Have you ever seen a laundromat with a lounge like this before? It's air conditioning. There's snacks. You can gamble, just hang out and relax while your laundry's getting taken care of. It's pretty cool. So the next time you're over in Freeport and you need to do some laundry, come on over, do some laundry and sit back here in the lounge. You can gamble and when you hit it big, just ring the bell and they'll come and pay you. Thanks again for watching and we'll see you again next time on Pittsburgh Your City Show, the Freeport Edition.


Now, as gunshots echo across the windswept snow-covered reaches of the wild northwest, Quaker-puff wheat and Quaker-puff rice, the breakfast cereal shot from guns, present the challenge of the Yukon. It's Yukon King, swiftest and strongest lead dog of the northwest, blazing the trail for Sergeant Preston of the northwest mounted police in his relentless pursuit of lawbreakers. Yukon King, on the cascade. Gold, gold discovered in the Yukon, a stampede to the Klondike in the wild race for riches. Back to the days of the gold rush, with Quaker-puff wheat and Quaker-puff rice, bringing you the adventures of Sergeant Preston and his wonder dog Yukon King, as they meet the challenge of the Yukon. Listen to this sound picture. Ah. Mmm. Oh boy. Yes, that's what it sounds like around the breakfast table when folks first try rich, thick cream and fruit on a heaping bowl of Quaker-puff rice or Quaker-puff wheat. It's a breakfast deluxe. Taste it. Every spoonful of those king-size grains of wheat or rice is mouth-watering good. So crisp. So nut-like in flavor. So extra delicious, all covered with velvety, smooth, rich cream. Don't wait. Enjoy this deluxe treat tomorrow morning. Taste tempting Quaker-puffed rice or Quaker-puffed wheat. Elaine McNeil sat at her father's bedside. The lamp light shed a soft glow over the gaunt features of the dying man.  Yes. He said he'd be around about eight o'clock. He's a mighty persistent young fella. How many times has he asked you to marry him? Twice. And I reckon he'll ask you again tonight. Well, I don't know. Listen, Elaine, before I die, I want you to promise me one thing. Yes, father? I reckon you know what I'm going to ask. You want me to forget Tom Beckett and Mary Phil? Yes. That's it. But how can I marry Phil, father, when I'm still in love with Tom? Tom's dead, Elaine. It's nearly six months now since you got that message from the War Department. Surely that's time enough to get over your grief. Please, Dad. I know it's painful to talk about it, but you've got to face up to the situation. When I'm gone, the mind will belong to you. You'll be a rich girl. You'll need a man at your side to help you run things, especially in a rough country like the Yukon. Do you think that's a good reason for marrying someone I don't love? Well, love will come in time, Elaine, after you've been partners for a while. The important thing is that Phil's a good dependable young fella. He's smart, and he's got plenty of gumption. He's chief bookkeeper at the bank right now, and another year or two, they'll be making him assistant manager. Yes, Phil will get ahead in the world, no doubt about that. If you and Phil get married, I know I'll be leaving you in good hands. All right, Dad, I'll do what you say. If Phil proposes again tonight, I'll accept. It was more than a week later in the town of Selkirk. The goldusk of Faye was crowded with sourdoughers and trappers. One corner of the room, a young man sat alone at a table eating dinner. He looked up as an elderly prospector approached his table. Hey, mind if I sit down here with you?  Of course not. Pull up a chair. Thank you. You prospecting around these pots? No, just on my way to Dawson. Say, was that a Dawson newspaper you've got stuck in your pocket? Yes, the latest issue, the Klondike Nugget. Oh, would you mind if I took a look at it? I haven't seen a copy of the Nugget for almost a year. Sure, go ahead and read it. You've been outside the territory for a while? Yes, I was in the American army down in Cuba. Hmm, looks like the Nugget's gotten to be quite a newspaper. I guess Dawson must have grown a lot since I saw it last. He sure has. You won't recognize the place. Hey, waiter, how about give me some service? Hmm, they've even got a column of social notes. Holy smoke. What's the matter, son? Oh, nothing. I just saw an item about a girl I know getting married. What'll it be, Sardo? I want a steak about this thick, smothered with onions. Sure, coming right up. Hey, wait a minute. How much do I owe you? Well, let's see. That'll be $3.50. Here, keep the change. Oh, thanks.   Well, I guess I'm not as hungry as I thought I was. So long, old-timer. With good weather all the way and the trail hard-packed, the trip from Selkirk to Dawson was completed in five days. Phil Rockland was preparing to turn in for the night when he heard a dog team halting outside his cabin. A moment later, someone knocked on the door. Yes, what is... No, it can't be. What it is, Phil? Tom Beckett. In the flesh. Oh, do you mind if I come in? Oh, I know. Come on. Girlie time. I still can't believe it. I guess it must be quite a shock at that. I thought you were killed down in Cuba. The War Department thought so, too. Hey, here, give me your park. I'll hang it up. Yeah, thanks, Phil. I sit down, Tom. Now, for the love of Mike, tell me what happened. Well, there's not much to tell. I got shot down by a sniper during a jungle skirmish. Some natives picked me up and nursed me for a couple of weeks. Finally, one of them got word through to the American lines. A couple of corpsmen came and hauled me out on a stretcher. By that time, I'd been reported dead. But good heavens, why didn't you write and tell us you were safe? Well, in the first place, I was delirious for quite a while. Caught some kind of jungle fever. After I pulled through that, it looked like they'd have to amputate my leg. Well, if that happened, I figured maybe I'd better let Elaine go on thinking I was dead.  I guess you're right. Anyway, I was lucky. The doctors finally managed to save my leg. And now you... there you are. I know what you're thinking, Phil. What do you mean? You're wondering what's going to happen now that I'm back. You see, I read that notice in the paper about you and Elaine being engaged. Tom, I... I don't know what to say. Never mind. I don't blame you for falling in love with her. What I want to know is whether Elaine's in love with you.  No, I came straight here to your cabin as soon as I got to Dawson. You want the truth? Phil, you're my best friend. I know you won't lie to me, so just give it to me straight. Elaine and I fell in love less than a month after you went back to the States to enlist. Oh, I see. Tom, I... I'm sorry it had to happen this way. Don't be silly. It's not your fault. What do you figure I'm doing? Oh, I don't know. This sort of changes all my plans. Say, listen, Tom, would you like to do a little prospecting? What do you mean? Well, the bank just got word this morning about a new gold strike up in Malamute Valley. The news hasn't gotten around yet, so if you were to head up there right away before the stampede starts, you could probably stake yourself out a nice claim. My golly, that's an idea. There's nothing to keep me around Dawson any longer. I'll stock up on supplies and start tomorrow morning. Lord, you're not planning on seeing Elaine before you go. What's the use? No, Tom, you can give her my best regards. Tell her I wish both of you lots of happiness. Sure, Tom, I'll do that. Sergeant Preston was returning from a northern patrol. About 10 miles from Dawson, he stopped to prepare his midday meal. As he busied himself over the campfire, a traveler approached and break his sled to a halt. King greeted the newcomer with a series of friendly barks. Oh, there, King, old fella. I might have known you wouldn't forget me. Hello, Sergeant. Tom Beckett. I'm not seeing things, am I? I'm not a ghost, if that's what you're thinking. But you were reported killed in action. I was wounded and couldn't get back to my outfit. My company officer figured I was dead. Instead of which, you're back safe and sound. Yep, back from the grave. Well, I can't offer you any fatted calf, Tom, but I can fix your plate of beans.  Thanks, Sergeant, but I ate just before I left Dawson. Huh? Well, take a cup of coffee, though, if you don't mind. Why, of course. There you go. Thanks. I suppose Elaine McNeil's might be happy you're back. Well, I haven't seen her. I thought you two were engaged. Well, we were, but she changed her mind while I was gone. She's going to marry Phil Rocklin. The wedding's set for tomorrow morning. Oh, I'm sorry, Tom. Is that why you're leaving Dawson? Well, it's one of the reasons. I'm on my way to Malamute Valley. I'm hoping to get there before the stampede starts. Stampede? I didn't even know anyone was prospecting over that way. Well, it's just a new strike. Phil Rocklin found out about it through the bank, and he was the one who passed the word along to me. I see. Well, Tom, you haven't had a very happy homecoming. He's hoping you'll have better luck in Malamute Valley. Meanwhile, Phil Rocklin had left the bank at lunchtime and gone to the Northern Lights Cafe. He went to the back of the cafe and knocked on the door marked Private. Come in. The owner of the cafe, a man named Frisco Dunn, was seated at his desk. Well, what do you want, Rocklin?  You'll get paid with plenty of interest, too, just as soon as I take over old man McNeil's mind. And better not be any slip-ups. There won't be. Providing you'll find someone to do a certain job for me. What kind of a job? The less you know about it, the better. Oh. Oh. That kind, eh? It's got to be handled in a hurry. Can you find someone for me? Let's see. Here, there's a fellow named Bronson, my dude. He's out in the cafe right now. He's got a half-breed pair. All right. Send them into the back room so I can talk to them. And while you're at it, you'd better tell them my credit's good. A few moments later, Bronson and the half-breed entered the back room where Phil Rocklin was waiting for them. Crisco said you wanted to see us. I've got a job for you. I'll pay you $500 right now. And another thousand later on. That is, of course, if the job is completed successfully. Sounds fair enough, Avery. Yeah. What do we have to do? A fellow named Tom Beckett is on his way to Malamute Valley. He just left town this morning. That means you'll make camp for the night somewhere near Devil's Gorge. Go on. You two start after him. You'll probably get to his camp sometime tonight after he's turned in. When you get there, grab him and knock him out. No gunplay? No gunplay. What do we do with him after we've knocked him out? You'll heave his body over the edge into the gorge. That way it'll look just like an accident. Yeah. Yeah, see what you mean. We'll continue our story in just a moment. Bullseye for flavor. Yes, in every spoonful of the ready-to-serve breakfast cereal shot from guns, you enjoy swell nut-like flavor. A bullseye for crispness. Yes, there's tender, melt-in-your-mouth crispness in those king-size kernels of Quakerpuffed wheat and Quakerpuffed rice. A bullseye for nourishment. Yes, Quakerpuffed wheat and Quakerpuffed rice give you added food values of restored natural grain amounts of vitamin B1, niacin, and iron. You're always on the target when you reach for that famous big red-and-blue package with the smiling Quakerman on the front.  Add milk or cream, topped with your favorite fruit. Man, oh man, these giant, flavor-rich premium grains are exploded up to eight times normal size to make them crisp and tender. They're shot from guns to make them bigger and better tasting. Shot through and through with nut-like flavor, too. By both delicious kinds. For variety, eat Quakerpuffed wheat one time, Quakerpuffed rice the next. Just remember they're never sold in bags or bowls. You can't miss with Quakerpuffed wheat and Quakerpuffed rice. The famous cereals shot from guns. Now to continue our story. When Sergeant Preston arrived in Dawson, he reported to Mounted Police Headquarters. A short time later, he was called into Inspector Maynard's office. Oh, Sergeant, I have another assignment for you. It's been a new gold strike. Oh, yes, sir. I heard about that. Is that so? I didn't think the news had leaked out yet. First claim was just filed about an hour ago. That's funny. Well, anyway, in another day or two, the usual rush will get underway. I think I'd better send a police detachment to keep order. You'll be in charge, Sergeant. Very well, sir. Has the valley ever been mapped? The valley? The Malamute Valley, the place where the gold strike occurred. The strike's not in the Malamute Valley. It's down on Campbell Creek. What's that? Inspector, are you sure there hasn't been a strike in Malamute Valley? Of course I'm sure. The commissioner's office always notifies us as soon as a claim is filed in a new district. Well, in that case, I'll tell you the whole story, sir. A couple of hours ago, Sergeant Preston told the inspector about his meeting with Tom Beckett. He explained how Tom had started out from Malamute Valley on a tip from Phil Rocklin when he was through with the inspector remarked. Sounds as though Rocklin deliberately sent Tom on a wild goose chase. It certainly does. Inspector, you're a pretty good friend of Duncan McNeil's, aren't you? I've known him ever since he came up here. Have you seen him since he's been here? Yes, several times, but what are you driving at? Well, I was just wondering, sir. You've had a chance to observe Elaine. Is she really in love with Phil Rocklin? I doubt it very much. Frankly, I think she's just marrying him to please a father. I wonder if that's why Rocklin wanted Tom out of the way. What do you mean, Sergeant? The wedding's set for tomorrow morning, sir. Perhaps Phil was afraid Elaine would call off the wedding if she found out that Tom was still alive. By George, I'll bet you're right. Inspector, can you spare me long enough to go after Tom? I'll travel all night and be back in town tomorrow morning ready for duty. Well, Sergeant, the Northwest Mounted isn't in the Yukon to play Cupid, but go to it. Thank you, sir. Devil's Gorge was a narrow, steep-wall chasm several miles long. The trail to Malamute Valley lay along the western edge of the gorge. It was late at night, and a full moon had risen by the time the two hired killers came in sight of Tom Beckett's camp. Tom was rolled in his blankets in the shelter of a thick clump of spruce. He was awakened by the startled barking of his huskies. Seeing the two men approaching, Tom threw aside his blankets and got to his feet. Howdy, strangers. Fabblin kind of late at night, aren't you? Your name, Tom Beggar. That's right. What about it?  What's the idea?  Turn around. All right. Now start walking over to the edge of the gorge. What are you aiming to do?  As Tom approached the gorge, Bronson suddenly raised his hand and brought his gun butts smashing down on Tom's head. Yeah, I got him. Now we'll carry him over to the edge. Let's heave him over. Let him go. You think him dead? If he ain't dead, he's in mighty poor shape right now. Anyway, what's the difference? If the fall didn't kill him, you'll freeze to death before he comes to. Come on. Hey, look. Someone come. We smoke you, all right. You think him see what happened? I don't know. We'd probably show up pretty clear in this moonlight. We better not take any chances. Come on, let's clear out of here. We hitch up Beckett's team? No, there's no time for that. Come on, line collars. Line the team. Ten minutes later, Sergeant Preston arrived at Tom's camp. Though he had glimpsed figures moving about far up the rise, he had no idea what had happened. But he was prepared for trouble. Okay. Come on, King. Let's find out what's going on here. The sergeant's glance took in Tom's empty bedroll, and the huskies straining at their traces nearby. He also saw footprints leading away to the brink of the gorge and the fresh tracks of a sled heading out of sight along the trail. Even though he guessed what had happened, he said, Hello, King. The sergeant patted Tom's blankets. Find him, boy. Which way to go? King sniffed the blankets. Then gave a sharp bark and trotted away in the direction of the footprints. Sergeant followed him. Moment later, King stopped on the edge of the gorge. So they threw him over the edge, eh, fellow? If Bill Rockland's behind this, he'll pay for it. Said he came. Come back, fellow. We'll go after them later. Right now, we've got to go down there and find Tom's body. There's a chance he may still be alive. The southern entrance to the gorge lay only a short distance away. The sergeant drove there on his sled, taking one of Tom's blankets with him. Before everring the arrow to file, he paused to light a hurricane lantern. No trail down there, fellow. We'll have to pick our way along. After lighting the lantern, Sergeant Preston held out the blanket once more for King to sniff. Down here somewhere, King. Now I want you to find him. Got the scent, boy? All right. Lead the way. Oh, sure. Meanwhile, when Bronson and the half-breed had heard Sergeant Preston's team heading away in the opposite direction, they adventured out of their hiding place to scout out the situation. In one hand, Bronson carried a rifle. We're in Thunder, do you suppose, he's gone? Him go to mouth of gorge. Try find Buddy. By golly, I bet you're right. Come on. Let's get back to Becket's camp. The two men returned to the scene of a crime. They crept close to the gorge and peered over. The depths below were hidden in inky darkness. But in the distance, they saw the flickering light of a lantern advancing along the floor of the gorge. Look down there. Him come this way. Yeah. Yeah, you're right. We'll wait here till we hear his team come a little closer. Now we'll let him have it. A moment later, Bronson moved his rifle in position. As he did so, the barrel of the gun dislodged a few pieces of gravel. Inside the narrow, steep wall gorge, the sergeant heard the sound. In a single movement, he flung the lantern against the rocks and dropped to the ground. A split second later, a rifle shot, thundered into the gorge. Kicking key! King swung the team to the right, close to the cliff wall, where the sergeant knew they'd be protected by the rocky outcropping. Well, you ask him to swallow. Keep them down, King, so they won't get hit. In the darkness, the sergeant drew his gun and returned the fire. Hastily, the two crooks drew back from the edge of the gorge out of sight. I don't think they'll risk any more shots, not for a while, anyway. In the meantime, you've got to find Tom. He must be pretty close to his body. Find him, King. A moment later, a low wine announced that King had discovered Tom's body. The sergeant moved cautiously in the direction of the wine. His hands groped in the darkness. Good boy, King, you found him. I don't think Heavens he landed in a snowdrift. I'll try his pulse. King, it's still beating. Let's see if he has any broken bones. Swiftly but gently, the sergeant's hands probed for possible fractures. Seems to be all right. I guess the snowdrift saved his life. The sergeant dragged Tom back to the sled. Wrapped him in a blanket and forced a little brandy down his throat. Gradually, Tom began to recover consciousness. Easy Tom, quiet. This is Sergeant Preston. What happened? Where am I? We're at the bottom of Devil's Gorge. You got thrown down here. The men who did it are up on the rim of the gorge right now, waiting to shoot us when we come out. Holy smoke. What are we going to do? Listen, Tom, I have a plan. This is what we'll do. After Bronson and the half-breed heard the sergeant's dog team moving northward along the floor of the gorge. Ah, him go away. He had up gorge. Yeah, he probably thinks he can give us a slip by going all the way through the gorge. We'll see about that. We'll have to travel pretty slow down there in the darkness.  And when he comes out, we'll be all set for him. It was nearly an hour later that the two crooks heard the sergeant's team emerging from the north entrance of the gorge. They were hiding behind a group of boulders at the mouth of the rocky defile. Bronson's gun was already leveled to shoot. Here he comes now. But a moment later, Bronson's anticipation changed to dismay. Hey, where is he? No one's right sled. Whirling around, Bronson saw them out. He emerged into view from a thick clump of trees 20 yards away. He raised his gun to fire, but the sergeant shot first. Don't try anything. Next time I'll shoot the kill. Where did you come from? How did you get up here? I had my lead dog take the team through the gorge. Without a driver? The team doesn't need a driver with King and the lead. Do they, King? That still doesn't explain how you got up here. While you two were traveling all the way to the north end of the gorge, I came out the other way. You get here so fast. I hitched up Tom Beckett's team, left him about a half a mile back down the trail. From now on, I'll ask all the questions. You're both under arrest in the name of the queen. The following morning, a small group of friends had gathered at Duncan McNeil's house in Dawson for the wedding. The old mine owner had been carried into the living room and propped up with pillows to witness the ceremony. A hush fell over the group as Elaine McNeil, pale but calm, entered the room. The Reverend McPherson spoke to Phil Rockland.  Don't I know it? Silently, Elaine came forward and took her place at Phil's side. The ceremony began. Dearly beloved, we are gathered together in the sight of God and in the presence of this company to join together this man and this woman. What's the meaning of this interruption? Sorry, sir, but I have official business with the bridegroom. Rockland, you're under arrest in the name of the queen. The charge is attempted murder. What's the meaning of this, Sergeant? Why you can't come in here this way and break up my... You bluffing Rockland the two men you hired to kill Tom Beckett have already confessed. Sergeant, what are you talking about? Tom was killed down in Cuba. Oh, no, he wasn't, Elaine. As a matter of fact, he's standing right outside the door. What? Would you like to see him? Oh, yes, please. Come on in, Tom. Tom! Oh, Tom, you'll come back. That's a wonderful scene. Well, what do you know about that, Sergeant? You've broken up the wedding ceremony and the bride's actually happy about it. Looks to me as though the ceremony may continue. What a new bridegroom. Now that this case is closed. In just a moment, Sergeant Preston will give you a preview of Friday's adventure. Fellows and girls, the Yukon is a pretty rugged place to live. But look, whether you live in the great northwest or here at home, you need plenty of food energy. Yes, and if you were to ask Sergeant Preston, you can bet he'd agree that a good breakfast is a mighty important source of food energy. So here's good advice. See to it that you eat the kind of breakfast you need every morning. You'll want to include a big he-man's bowlful of delicious Quakerpuffed wheat or Quakerpuffed rice with milk or cream and fruit. Try it. Wheat or rice shot from guns tastes so crisp, tender, delicious, it's always a tempting treat. What's more, it furnishes added food values of restored natural grain amounts of vitamin B1, niacin and iron. For a nourishing, tenderly crisp, delicious breakfast, get Quakerpuffed wheat and Quakerpuffed rice in the big red and blue Quaker package. Get them tomorrow. Remember, they're never sold in bags or bulk. Listen, Friday, when Sergeant Preston and Yukon King meet the challenge of the Yukon in the case of the return of the fugitive. When the constable had 40 miles sent for my help, the journey there through a blizzard was bad enough. But when I learned that King and I had to continue on in the blizzard to trail the fugitive from a murder charge, I knew we were in for quite a time of it. Matters became even worse when I had to depend on the man I was hunting to save my life. Be sure to hear this exciting adventure Friday. These radio dramas, a feature of the challenge of the Yukon Incorporated, are created and produced by George W. Trendall, directed by Fred Flower Day and edited by Fran Stryker. The part of Sergeant Preston is played by Paul Sutton. They are brought to you every Monday, Wednesday, and Friday at the same time by Quakerpuffed wheat and Quakerpuffed rice. The breakfast cereal shot from guns. Remember, for delicious hot breakfast, enjoy Quaker oats. The giant of the cereals is Quaker oats. Delicious, nutritious, makes you feel ambitious. The giant of the cereals is Quaker oats. And here's why Quaker oats is called the giant of the cereals. There's more growth, more endurance in oatmeal than any other whole grain cereal. So make your hot breakfast nourishing Quaker oats. Quaker and mother's oats are the same. This is J. Michael, wishing you good bye, good luck, and good health from Quakerpuffed wheat and Quakerpuffed rice. So long. This is ABC, the American Broadcasting Company.


Hey, what's up? I'm just out here on the pitch about to film some new videos for you more tutorials coming out this week But this video is specifically about the live sessions that I'm holding this month. You may have seen over the last few weeks I've been doing those sessions where players from all around the world can train with me from their own home And it was a really cool experience. The feedback was fantastic. So I decided let's do this consistently So I'm gonna do it consistent for the month of May if you'd like to join if you like my videos And you just want to get a more personal coaching experience from me It's a really great opportunity, but the first session is tomorrow So hopefully this video found you in time watch the entire video You get all the information that you need to make a decision But if you'd like to train with me make sure that after you watch this video Click that link right away and go and sign up because there's limited spots available So hope to see you tomorrow and I'd love to train with you on a more personal level On to Dylan to be progressive soccer for the month of May I'm holding private training sessions online. You can train with me from any country in the world from the comfort of your own home There are sessions on Tuesdays Thursdays and Saturdays and because different players are in different time zones I'm offering a morning and night session 10 a.m. And 6 p.m. Mountain Standard Time You can book just one session. You can train with me once a week twice a week three times a week You can train with me as little or as often as you'd like you'll see below this video There are different options for you to select now if you want to join the session All you need is a small space at home a ball and the desire to improve But if you're serious about this and you really want to get in on these sessions Sign up right now because there's limited spots available. So after you watch this video Click the link below to book your spot Can you see the ball? I'm not pushing the ball diagonal. I'm pushing it away from him and then forward Really focus on Come up with control don't rush it and switch switch sides every time.  Five more seconds.  I want you to add double double step over go point to Attack right left and get away walk to the end of your area and back Walk from one side to the other down squeeze and show me Go on get it. Yeah, Molly. That's awesome. Yes girls really good hard push hard push when you change direction Was across my body, it's not out here. I'm gonna cross my body push off land Ready show me. Oh And then once you're comfortable Add the skill ready.  Yeah, this toe is up Good and then come across stay down come across Some little touches put in the air some bigger ones put coming down each time Keep it up on your strong quick.  Just let it bounce Let it bounce When you come up flex flex the legs flex the butt don't always go in the same pattern Or if you want to be creative But it's I don't say ready cool. Don't take this touch across him Take it away from him.  I want to see everyone move faster. I did Dylan to be his live session It was amazing. It's the perfect balance of cardio strength and ball. I recommend it to anybody who wants to take their game to the next level If you like my videos if I've helped you improve in any way in the past Sign up for this training. You're gonna love these sessions. We're gonna improve your skills your fitness and your confidence It's only $20 a session an individual in-person training session with me is a hundred dollars an hour So this is a great opportunity to get some personal coaching, but check out what other players are saying There's some testimonials below this video and if you're interested like I said sign up right now Don't wait because there's limited spots available. I really hope to see you there and I can't wait to train with you


The word samsara does not mean family, this it just means cyclical. Who you are right now is a product of certain cycles. There are many ways to look at this. The cycles of the sun, the cycles of the moon and various other cycles in the universe, we are a product of that. Only because our mother's bodies were in sync with the cycles of the moon, we are born here, isn't it? So we are a product of cycles. Our idea of time is cyclical. If the planet spins once, we say it's a day. If the moon goes around, we say it's a month. If the planet goes around the sun, we say it's a year. Our idea of time itself is cyclical. If it was all like this, going like this, you wouldn't know what is time because there are no markers anywhere. If the planet was just going straight somewhere, would you know what is time? Only because it's in cycles, you are able to decipher as to what is time, you are able to measure a certain length of time. And your life is a certain amount of time, and it is going in cycles because it's a product of this. Solar system is like the Potters wheel which has generated this. So time and the cycles of time, either you can be trapped in the cycles of time or you can ride the cycles of time. If you're trapped in the cycles of time, we say you're in samsara because life becomes cyclical and it keeps repeating psychologically, physiologically. Physiologically definitely there are cycles. The monthly cycles in a woman's body are related to the moon. There are other cycles which are related to the sun, which are not so obvious as the cycles of the moon, but they're happening. If you observe your life carefully, you will see it is cyclical. Same things are repeating themselves in different colors, but same things are repeating themselves over a period of time. You can actually look whether it is twelve years, it's six years, it's three years, it's happening at some point. If it is happening in very short cycles, you are heading towards a psychological breakdown. If it's happening in long enough cycles, you're just suffering boredom. So if you're trapped in these cycles, we call it samsara. If you ride the cycles towards your liberation, then we say this is sannyas. Sannyas need not necessarily mean not having a family. Samsara need not necessarily mean that you have a family. You can be a sannyasi and still be in a samsara of your own. You need not be married. By yourself you could be wrangled up by yourself. If you get married, you see extra help you get. People are alone and they're quite wrapped up by themselves. They don't need anybody's help. They're doing fine by themselves. Their own samsara. Is it happening or not? Single people are in their own samsara, no? They're into their own chakkar going on. When you get married, at least you can blame it on somebody. It's because of her. I'm like this, or because of him, I'm like this. So these words have gotten related to certain aspects of life because generally it's believed that you can be trapped in samsara only when you have a family. Because once you have a family, you have to earn certain amount of money, you have to do certain things. Children are there, means certain things have to be managed so things become cyclical. When things are going in cycles, it feels that everything is better organized. If it was not going in cycles, every day is a new day. With children around you, every day a new day you can't deal with it. It's better it is happening in some system. So you will aspire for a cycle. You will not want new things to be happening every day.  Surprises look like disasters. This happened one day. Shankaran Pillai was going home and suddenly he thought he's done nothing for his wife in the last few years. So he bought a huge bunch of red roses and went home and knocked on the door. And when she opened the door with a big grin on his face, he tried to give the roses to us. She just blew up. She just blew away and she said, you fool, you know since morning the tap has been leaking, the dog has been sick, and the children had a food fight, I've been cleaning the whole place and now you have the courage to get drunk and come home. So surprises can be disasters because you aspire for order more than excitement.  Yes or no? If you had five children at home instead of one or two, then you would aspire for everything to happen like clockwork. You don't want one extra thing to happen. You don't want anything new to happen in your house. So this is samsara. You want to go in cycles, you're aspiring to be in cycles because cyclical at least there is a comfort, you know what's coming next. So once you go in cycles, cycle means a circle. If I say you're going in circles, it simply means that you're not getting anywhere. So in the cycles of time, if you're trapped in the cycles of time, you're not getting anywhere but going through the same thing. Because you have poor memory, that's only safety. Because you have poor memory, you do not realize the same things are being repeated.  Within the cycle, that cycle means so much to you. It looks like it's everything. If you break that cycle and something beyond the cycle becomes apparent to you, suddenly what's within the cycle is so limited and so meaningless. The relationships, the activity, the thoughts, the emotions, everything that you held as everything in your life, suddenly, pfff, so this is sannyas. That is you've broken the cycles of time. You're riding the cycles of time. You're not trapped in the cycles of time. So can I do this within the family? You can, but nobody need to know. If they know, they won't be able to live with you unless they are also like that. People are looking for some some bondage. People don't come together seeking freedom. They're coming together seeking bondage, isn't it? If they know that you're not bound by anything, it'll be dangerous to live with a person like that. So once you've broken the cycles of time, consciously you can be part of it when you want to be. But when you're not, when you're… you're not. So being a sannyasi inside a family situation, it is not that it's not possible. This is not being uncaring. This is not being unconcerned. This is just being free from a certain situation. There are many people who live in the family and they don't care a damn. That's different. That is because they're in their own samsara. They're not involved with other samsara. They're in a smaller cycle of their own. Being absolutely involved and not being entangled. That is a way to freedom. That is a way to liberation. If you're not involved, you may be just uncaring. You will be in your own small chakra of your own. You will see people who seem to be not involved in anything around them. Little little things about themselves are very important for them. If you disturb that, they'll go crazy. Yes? Have you seen this? They don't care if… whatever the family, but their coffee must be right. Coffee doesn't come, they'll go crazy. So they'll have smaller cycles. So being a sannyasi within a family situation, not… it is not that it's not possible. It's a bigger challenge.  When Gautama, the Buddha, was asked, is it good to walk in company or alone? He's a very brutal man.  He's saying, who else will marry you? You're not getting me. Who else will marry you unless he is a fool? Why will he be with you?  It's a loaded statement.


Good afternoon, folks. Steve Rhodes, coming to you live from the shores of sunny Delray Beach, Florida. This is your 1 p.m. update, and currently we have all of the U.S. indices that we track trading to the downside. Dow's up 222.7%, 1% for the S&P, 42.7. Nasdaq's up 2%, or 233. Russell's down 0.7 or 12 points, 1.5% for the Summys. That's 39 points to the downside. Gold's trading off 2 bucks, 18.23 is a print there. Silver down 30 cents at 2086. Lights recruit up $2.32, 1.1189. Natural gas up 11 pennies, 6.65, and a 30-year treasury is flat. Trading out at 1.3510. Let's go spend a little time with our 9-panel market update chart. We begin with the E.S. Mini. Price is pulling back, as we can see. Still, well, it's actually back below the bottom of its weekly profile, but above the top of its daily profile. It may be that the top of the daily profile is the destination, and that's at the 3841 level. We've been down to 3851. Spotball Atonix has tested and so far has rejected the 50-day exponential moving average. The 50 days at 2798, we're trading right now at 2759. Test of rejection would then seem to me to indicate that the markets are getting ready to move higher. I would have a change of heart if the spotball atonix closed above 2797 today. So that's the number to be watching on your screens. If we take a look at the NQ, that is testing or close to testing at the top of its daily profile at 117.16. We've seen a low of 11756. U.S. Dollar Index consolidating within its daily profile. That's between 103.62 to 105.56. Old consolidating within its daily profile. That's between 1813 and 1879. Silver not so sure what it's doing. It does have a TD9 count back here on May 13. As long as price remains above 2052, conditions are bullish to neutral. You close below that, and then we're headed lower. Lights we crude consolidating inside its daily profile with its price target being the top, which is 113.42. You close above that, we're likely headed to the 121.34 level, natural gas. Formed a TD9 count bottom. It did that on Friday. Prices, now we've got a new profile that is formed. Likely price will go target the 721 level at the top of that new profile. The 30 year treasury is trading below the bottom of its profile, but hasn't tested the swing point. The swing point was Generator Rosewood Dominicator bottom was June the 15th. Folks, stay tuned for the Trader Zed Show, but if you're off to start your Tuesday, we'd like you to have a terrific one. Thanks so much for joining us, and we'll look forward to seeing you again soon. Hopefully, in about two minutes. We'll be right back.


Hi everyone. My name is Stefano Stabellini. I work for AMD and I'm one of the extend maintainers. Today I'll talk to you about static partitioning, missed criticality and Zen. Why static partitioning is useful. In most common scenarios, at least in embedded, the software stack is made up of multiple components, only some of them critical to the functionality of the device. The largest amount of code and the highest number of components typically are actually not for the core functionality of the device, but therefore the UI or for cloud connectivity and other things that are important but not critical for the functionality of the device. So putting all of this component in a single environment is like putting all your eggs in a one basket. If something goes wrong, everything goes wrong. And a failure in your non-critical software could end up causing a critical failure in the old device, including the critical function, stops working. So using Zen and static partitioning allows you to have multiple baskets. So you can have your own critical components separated out in a VM or a domain. And your non-critical components, one or more, in multiple other domains. By doing that, you get isolation from interference, from fault isolation, real-time isolation. So if something goes wrong in your non-critical environment, your critical functionality keeps going, keeps working correctly, and the critical function is not unaffected. If your critical function has real-time requirements, they still keep working. You still get your real-time guarantees, no matter how big is the software or how busy is the non-critical environment. And also, it allows you to deploy a software stack where only the critical component is actually privileged. You can run large amount of software and driver, even as non-privileged, which is great not just from a security point of view, but also from a safety point of view, especially safety certifications are part of the design. So static partitioning basically looks a bit like that. You take the SOC you're working with, and you are splitting it up. You're carving out two or three, like in this example, subsets, and you're directly assigning a subset of the hardware to each of these domains. So what are the same features that allow static partitioning to work? The first one is DOM zero less. DOM zero less is a feature, it's called like that, because it allows them to start domains without DOM zero. DOM zero used to be required, now it's only optional. DOM zero less enables static domain configuration before boot given to Xen and Xen start at boot time all the domains that you wanted without DOM zero having to do anything. DOM zero is still optional and could be there for monitoring, for instance, or for rebooting individual VMs. Other features that are critical for static partitioning are real-time support, interact latency with real-time support, and cache coloring, which is isolation from cache interference, which allows you to have very low interpolations. VM to VM communication is often important to be able to exchange data between your domains. Safety certifiability is also very critical in many environments where safety is part of the equation, and we have a number of activities in relation to miseracy and other important items for safety that we are the time ongoing, but I'm not going to talk about those in this presentation. So let's go through an example configuration of Xen and static partitioning scenarios with a step-by-step guide, and let's start with a simple first step, which is to configure the environment with three domains. So the reference board I'm using is exiling this U102. I'm using an emulated QM environment, but you could use the physical board or target any other boards. The configuration is with Xen and three domains. Linux DOM zero, which is not required, as I said, but I'm keeping it around, is useful at least initially for debugging, but typically in production, then you could certainly remove it, if it's not essential. Linux and Linux RT environment with a minimal busybox in EterD and Zephyr. So three VMs, and then we choose the memory allocation and CPU allocation for all of these domains. Like I said, I kept them zero around, but generally one of the questions when choosing domains is whether you want to have a DOM zero or not. Device assignment is going to be critical, and it is going to be configured in a second step. So it's going to look a bit like that. So Uboot is going to load everything, and then Xen is going to start all domains in parallel. So the first step is to look at Image Builder. So Image Builder is really the reference point for DOM zero as configurations is a set of scripts that you can use to automatically generate your boot scripts from a simple text-based configuration file. So the one you see on the screen here is an Image Builder configuration file. You use it as a parameter to the Uboot script gen that you see here, and then Image Builder is going to generate for you the Uboot boot script that loads everything and starts Xen. So the parameters here are memory start and memory end is a memory region to be used by Image Builder for loading the binaries and loading itself, I mean the boot script. Device tree points to the host device tree binary. Xen points to the Xen binary. The DOM zero kernel and RAM disk are the parameters to specify the DOM zero kernel and the DOM zero RAM disk. DOM zero mem is to specify the memory for DOM zero in megabytes. The number of DOM use is a parameter to specify how many other domains you want to start. The new kernel zero, RAM disk zero, are to specify the kernel and RAM disk for the first DOM zero less DOM U, which is Linux RT with a trivial tiny busy box in ether V. The new mem is to give the memory for the new mem zero, the memory of the Linux RT environment. I gave two gigabytes. The new vCPUs is to select the number of CPUs for the Linux RT environment, and I chose two, otherwise default is one. And then the Zephyr domain, which is just a kernel, 128 megabytes is more than enough for the Zephyr to run. So image view that generates for you boot script, but you can configure and edit this boot script further in case you want to change common line parameter or tweak some options, anything you like, you can edit it, and then from there you can still generate the command on the screen with a simple make image call, you can generate the boot.scr again. So we talked about image builder, so we need to provide a few binaries. Let's start with Xen. So compiling Xen is simple and it compiles the same way as the Linux kernel compile. So you just enter the Xen directory under the Xen repository, and you type make. It works the same way as the Linux kernel. So you set the cross-compile environment, you set the target architecture if needed, and then menu config optionally, otherwise it's just going to use the default, the default config, and then make. Menu config is interesting. Usually you would just use the default, but menu config is interesting because it's needed if you want to enable cache-coloning, then we are going to look at it later. Cache-coloning can be enabled via a menu config option. Cache-coloning is not fully upstream yet, but is available publicly on the Xen3 as this URL. So feel free to use it, to give a look at it, use it even on Xen boards, of course, and also non-Xen boards. What about Linux? So Linux, you can just pull in any vanilla release like the 5.17, that's what I use for the demo. Enable config Xen. So config Xen is not required, but it's nice to have, because it gives you more options for the console, and also it gives you PV drivers, an additional way to communicate between VMs and for device sharing. So it's good to have. It's also not adding a lot of code, so it doesn't increase your size of the Linux binary by much, so I think it's good value. The other one that's good to have is the AMBA PL011 driver. So that's the driver for the PL011 UART to have a console. That is because when you run Linux as DOM0 as VM, you get an emulated PL011 UART, so it's good to be able to print on that console. Config bridge is not required, but it's useful in DOM0 if you're going to use PV network, because the bridging version of PV network is the easiest to set up. I just used vanilla plus two PV driver patches that are going upstream, are already accepted and reviewed, but not committed to Linux master yet, and I'll show you later how to use them. For the RouterFest, now if you don't have a DOM0 or you don't care about using the Xen tools in DOM0, like to start or stop VMs, then you can use any RouterFest for Linux that you like. You can use the default Yachto Ubuntu anything, but of course, if you want the Xen tools, then you need to pull them in if you want to be able to create new VMs and runtime, for instance. So in that case, at least for Yachto, those are the instructions on the screen to just enable Xen to the build and get the RouterFest with Xen tools. What about Zephyr? So Zephyr thankfully has Xen support out of the box. So there is a Xen VM machine that is starting to get a genetic Xen VM, so you just use Xen VM machine for the Zephyr build and it's going to work. In fact, that's all you need to do if you want to run Xen as a regular Xen domain, started from DOM0. There are a couple of additional steps needed if you want to run Zephyr as DOM0 less DOMU, so started directly at boot. Not very complicated, but after setting up the Zephyr build environment, as provided by this link here, you need to change in the device tree for the Xen VM board, you need to change a couple of options, but well, you need to rename the Xen underscore HBC console with Xen underscore console.io underscore HBC. The reason why you needed to do that is to enable to switch the console that usually is available for DOMUs, so for regular domains, with the console that instead is used by DOM0 and DOM0 less guests. And then just make sure to run menu config before triggering the build. In the menu config, just enable Zephyr as DOM0 and Zephyr the console for DOM0. These two options are needed again to use the console that's typically used for DOM0, but can also be used by DOM0 less guests. That's it, trigger the build and just use it. Make sure the Xen has been built with debug enabled for this to work properly. All right, so before we go to the next step, I want to show you a short demo. So I'm going to run QM here and I'm just rebuild the boot script using image builder and here the system is booting already. So what's going on here, I'm going to scroll up while this is booting, is binaries that have been loaded by TFTP at boot and then Xen has been started. Xen is starting DOM0 and DOM0 less domains in parallel. Zephyr is very quick to start because well it's very small, so it's already printing Hello World all the way up here. Then the two Linux's are starting in parallel, like in parallel there is limited level of parallel here with QIMU, but you see the mixed messages of the two Linux environments on the same console. Now of course, if you have multiple serial, I would definitely recommend to assign different serial to different domains so that you don't get mixed messages on the screen but also those that work. So here this is DOM0 and I can see that there are a couple of domains running and I can with Control-Triple-A, I switch between domains. The first one is Zephyr, cannot interact with Zephyr. Control-Triple-A again and now I am in the other Linux environment and I can do things and I can check that there is no network. I'm going to add the network in a second stage. So another thing to look at here is the generated boot script. This is the source. This is what if you want you can customize any way you like and regenerate the boot.scr that is actually used to boot the system. And this is the directory with the binaries and the original configuration file for ImageBuilder that is the same as I described before. Right so going back so next step is to add physical devices to each domain. So this is useful really in embedded if you can drive physical devices directly from your Linux or Zephyr environment. So in the example I'm going to assign the azonet device to the Linux RTBM and a timer, a TTC timer to the Zephyr environment. Device assignment is for sure the most difficult part of the configuration. Device assignment works as seen on the screen. So we need to provide a partial device which is just a small DTB for each domain describing the devices that we want to assign. The purpose of this partial DTB is to both describe for the domain the device but also to tell then what to remap for the domain. So this example on the screen you can see there's a pass through node under the pass through node everything is copied into the guest device tree. And in particular there is this azonet node which is the one corresponding to the azonet device. You can basically start by copying the node from the host device tree into this partial device tree and then make changes, make tweaks. What are the tweaks that you need to make? There's three involves here. First of all you need to add any Xen specific configuration. The Xen reg tells then what to remap in terms of MMAO regions. It can be usually one to one like in this case source and destination addresses are the same but it could be mapped at a different address in the guest. Xen pass is pointing to the corresponding node in the host device tree because this allows you if you wish to have a completely different this device tree description for the guest compared to on the host. This is not typically done but that's what it's for. But normally what you would do normally you just use Xen pass to point to the host device tree description of the same node. Finally you need to make one last change. So Xen is going to also remap the interrupts reading the interrupt property and the interrupt pattern need to be changed to point to this magic number that stands for the virtual intra controller that get created for the guest by Xen. So you is not pointing to the real host intra controller any longer because that's for the guest so this is pointing to the guest intra controller. That's it is not easy especially because often these nodes have dependencies on external things such as ping control power domains and clocks. So typically you need to just remove the ping control description and links or remove the power domain controls but the clocks are required so what you would normally do is keep the clock property and import any clocks that are needed for this device. The reason is otherwise typically Linux Linux drivers wouldn't work because they would try to probe and change clocks a boot. So after you have this partial DTBs you can just add them to the image builder config file like this and they get loaded automatically. There is only one final thing that you need to do which is mark on the host devices for assignment. You just need to add Xen pass through property under the host device nodes corresponding to these devices so that Xen knows that they need to be assigned. So we know that this is complicated and a bit too complicated and we are doing two things to make it easier. So the first thing that we are doing is axiolins with we have created a repository with a bunch of example partial DTBs for device assignments for a bunch of devices and they can be used simply you can look at them you can use as a base and they can even be picked automatically by image builder if you just write the path here in the image builder with the new pass through path. However keep in mind this is not smart so it's not generating an advisory it's just matching by name the examples under the repository and finding the right one and that's all. The automatic generation we talk about that in a second. One thing to keep in mind when looking at these examples is sometimes the name change in the device tree so for instance the parent of all of these devices is usually called amba in older device trees and newer devices called axi so make sure that the name is the same everywhere otherwise there is a mismatch is not going to work. This is still is easier with examples pre-made for you but first of all you require somebody to write this example by hand and secondly it's still too difficult so what we're doing is we are aiming at aiming at automatically generating all of these partial DTBs the way we are doing this is through another project called Lopper so there is so we are working on an extension to device tree to describe multiple environments multiple heterogeneous CPU clusters and multiple VMs it's called system device tree together with the specification because it also comes an open source tool called Lopper. Lopper is a device tree manipulation tools it can take a device tree at input and generate multiple device trees at output so Lopper can be used to generate these partial DTBs. There is a talk at embedded linus conf this conference to discuss how to use Lopper to automatically generate these partial DTBs it's still very cutting edge but it's possible and that's going to simplify greatly this problem once we assign the devices to the domains then we need to use these devices in your in the guests so what you see on the screens are the changes needed to add the TTC timer to Zephyr this has nothing to do with them this is just generic the generic the generic instructions to add a new device a new peripheral to an existing board so here I have added the TTC timer to the device tree description of the XenVM board and then added the memory mapping for the TTC timer for the same board in MMU regions.c okay before we move to the next step I'm going to show you a demo so I'm going to regenerate the boot script using image builder again stop the previous run start QM again QM is going to start and it's going to fetch the new binaries over TFTP it's going to start all the guests in parallel now let me scroll up again why it finishes booting so this is Xen booting right and then loading the demuse Zephyr is booted very quickly like last time there is no hello world because I changed application and now I'm using the TTC timer to print something every time there is a timer interrupt every few seconds and then the two levels environments are still starting in parallel as you see here so I'm going to scroll to the bottom and as you see there are these messages printed from Zephyr printing a timestamp every few seconds I'm going to switch we're using control triple A to domain choose that is linux and now I'm going to do it config and we have a nethernet card we have s0 interface which is the one that has been directly assigned all right let's go I mean I can go give you a quick look about the directory so what I did here I added the two partial dtb files and you I'm going to open the azanel one as you can see there is a clock after all in addition to the azanel node the xen reg xen path and the interapparent pointed to the magic value and on the oscillatory xen pass through property has been added under the azanel node okay then let's move on to cache coloring so many of you will want to run at least one application with real-time properties interapp latency is very important and should be deterministic in many of the new of the new socs there is a shared l2 cache across the old clusters what it means is activity on one vm on one core can cause cache line evictions that would affect the performance and the latency of another vm this is not good because it's going to make you know memory accesses non-deterministic and your interapp latency might go up the solution is to use cache coloring to make sure each vm has its own dedicated set of cache lines so each vm only access its own cache lines and another vm cannot cause cache line eviction that affect a different guest the way to do this is by using cache coloring so cache coloring is a smart technique that understands the relationship between cache line and physical addresses and allocates memories monthly so that each vm only end up always hitting the same cache lines the trick is allocating one page in memory every 16 as you see on the screen but you didn't you don't need to worry about this the only thing you need to care about is color allocation so a color is this small unit of cache line that you allocate to guest so on zc1.2 there are 16 colors each color correspond to 256 megabyte of brown so depending on your memory allocation to guests you want to give different amount of colors we here we reserve one color for zen that is color zero we reserve five colors for dome zero given that dome zero as one gigabyte of memory you can always provide more colors which is okay to not provide less color than the amount of memory otherwise there's a problem one color to death here uh given that is only using 120 megabyte anyway would be using less even everything else to linuxft that is the largest vm and that is the way to do it in the confi file by adding the new colors with the color configuration for your dome you so your regular domain for zen and dome zero you just need to specify the full command line by hand and i'm going to show you how to do it in a second so let's switch to the console uh so the configuration is here so we have again the new colors this is for linuxft this is for zephyr and here we specify the full zen command line using with the dome zero memory the zen color the dome zero color and waist size is just for qm so it's normally on your physical uh board is no need that is automatically detected in fact if you want to know how many colors uh there are and how big each of them are you can just start zen with uh there's a minimal color in configuration and zen is going to print it out for you like see here tells you the waist size the maximum number of colors available the zen color that you configured the dome zero colors that you configured your zephyr color and uh the linux rt colors that is enough and sufficient to configure coloring successfully uh and device assignments still work as you see on the screen okay i'm going to stop the demo and tell you about the last part of the configuration which is share memory event and event channels so for communications the easiest thing to do is just to configure um uh shared memory area uh between two vm's you can then exchange data on your shared memory with a ring buffer or you can use a library like open amp and for notification you can use event channels that are like software interrupts provided by zen so the configuration is you pick a share memory address like the one you see on the screen keep in mind that the address is important for your color's allocation because each other is going to have a color the color is defined by this number so pick your address carefully so this means is color one um and then you just use a share memory you map it at both vm's uh and um you can use it for notification you just need to bind event channels how to do that there is a header file bsd license that you can include in any of your projects that have uh definitions for hypercos and to receive event channels just use it bind and event channels and just send event notification between vm's the way you wish in reality linux has full support to event channels already and also zephyr has partial support to event channel already so most of it is already done but if you are working on a different project you might need uh zen dot age uh we are working on armies working on uh this a definition of event channel and share memory that can be done at the image visual level, device tree level before the system is already started that's going to make it even easier and better for you but what you're going to what i'm going to tell you now works already with the past zen release so you carve out a memory region removing it from the memory node and you instead specify it as a sram region as you see on the screen um with accent pass through specification to say this is going to be assigned to the guest and then you add it to the partial dtbs of both your guests this sram region you also need to add zen force assigned without a yo-me-mu because otherwise zen will always try to configure the yo-me-mu for you for safety in this case this is not a dma mastering device the yo-me-mu is no need that should not be configured for this so just specify zen force assigned without a yo-me-mu finally you just map the memory in zephyr and linux using normal techniques to map memory so there's nothing special there and then you send each other event channels that's it now this is the code in linux to map to discover an sram region and then map the memory allocate an event channel write the event channel number on the share memory for zephyr to read buy this event channel and send notifications so i'm going to show you this demo straight away i'm going to start in the system again coloring is still enabled booting zephyr linux rt and dun zero all in parallel in this case zephyr is receiving tpc timer interrupts instead of printing something directly is writing the timestamp on the share memory linux is reading is receiving the event channel notification from zephyr we're reading the timestamp and printing it on the screen so as you can see here zephyr is actually linux rt that is printing the timestamp zephyr is silent so again zephyr receives a physical interrupt write the timestamp of the share memory and sends the event channel notification to linux sprint demo code uh this is zephyr is basically waiting to until the share memory is ready and reading the event channel number from the share memory and then binding it from that point onward is just using the event channel hypercode to send notification to the other guest linux instead is using the powerful linux drivers to allocate an event channel write the event channel number on the share memory and finally for each event channel notification it's just reading the timestamp and then printing the timestamp there is one last thing that i want to show you uh and this is pv drivers wisdom zero s so pv drivers are powerful drivers that allow you to not just communicate but even share a device like share the network for instance across multiple vms in this in this example in this run i did not assign the network card to linux rt i left the network card in dom zero i can still give linux rt network access by using pv drivers first i call any dom zero less uh that is a binary indom zero to is a binary indom zero to initialize pv drivers then i hot plug a pv network uh environment into my linux rt vm and the network just comes up at that point so i create a bridge i created the bridge and then i use i used excel network attach which is a command sorry for the all the messages on the screen but i use this command excel network attach to hot plug a new pv network interface into linux rt and switch into linux rt and as you can see here there is now another s0 environment this is the new environment just hot plug into my guest i assign i need an i p address and i can just ping dom zero from it i could wget page from google or do anything else um so this is how it works so the the good thing about this is that you can still start your critical function very early a boot you you don't need to wait for pv for pv drivers to come up pv driver can come up later when dom zero is ready um and then you know that this is how the communication is gonna work uh and the steps are the one you see on the screen so you call any dom zero less and then excel network attach all right i realize there's a lot to cover uh but the slides are going to be made available and the presentation is recorded so uh you can uh slow down and look at the details uh and i hope you enjoyed the presentation and i'm here to answer questions on chat on the chat