Yes, I know. Everybody else has already done their Luigi's Mansion video, but let me ask you this. Did they have the really cool figure 4 Luigi's Mansion statue in their video? Wow, do you remember Halloween? That was like two weeks ago now. There was candy, chocolate, trick or treaters. I was dressed up as Cat in the Hat. But more importantly than any of that, the best part about Halloween was Luigi's Mansion 3 dropped on Nintendo Switch. Perfectly in time for the... Actually, if you ask me, it was a little too late. Perfectly in time for the spooky season. And I loved every single frickin second of the... Well, that's a lie. I didn't... There was one... Just one entire floor, one level in the game that I couldn't stand. But the rest of the game was really great. The story has Luigi once again falling for a fake Mansion prank. He brings his entire family to a haunted mansion only to get captured and then he has to save them. I think at this point, Luigi is just trying to find an excuse to be a hero. But regardless of that, they ride the bus to the mansion. Luigi's sitting on his own because... I guess no one likes Luigi. They check into the hotel, they find their bedrooms. Apparently Mario still isn't staying in the same room as Peach. I swear, Peach secretly does like Bowser. The animations throughout the entire game, it's frickin fantastic. It looks like a Disney Pixar movie in the cutscenes and then even the animations in the game look really cool. Like initially they stood out to me right away. You go up to the lobby and you talk to these ghosts in their masks. And when you turn Luigi around and walk away, you can see the skepticism on his face. Like, I'm pretty sure that guy was a ghost. And then throughout the mansion, anytime Luigi gets scared, which is just about every five seconds in the game, the way he reacts to it and then walks away shivering. Ah man, just the work that went into all of these animations, it's just outstanding. It actually feels like a brand new generation of Mario game just in the way that it looks and the way it's animated. The entire thing was visually stunning. Anytime you ended up outside the hotel and you could see the scenery around, the mountains, the trees, the purple and blue skies, just looks so great. And then don't get me started on inside the mansion. Oh, here I go. Every single floor was a completely different theme. I don't want to ruin too many of them because that was the most fun. On each floor, which was essentially a level, you had to work away around the rooms, trying to find the next button to throw in the elevator to make it to the next floor. And the thing that glued me to my switch and drove me along the entire thing was just wanting to get that next button to see what the theme of the next floor was. And a lot of them made sense.  Like, there was a gym and fitness inspired floor and then like a concert inspired floor. But then you also have really off the wall wacky ideas like a pirate themed floor where it's like you're actually exploring caverns and a pirate ship. I really loved the movie floor. That might have been my favorite floor for sure. Just because they could do so many different things with it because you were on a movie set. So they could take you to medieval times or anywhere they wanted on the movie set. That floor by far had my favorite boss battle. Not only for the game, but just one of my favorite boss battles in general. It was really cute. Man, what else can I gosh about? The physics of the freaking backyard, the gameplay in itself is so much better than the first one.  You can blow things away. You also have a weird light thing, which if you shine on objects that are there, but not actually there, it will reveal them. You can get into secret doors this way or get secret items of that way.   I like using that on the crates and the boxes and then smashing them into other objects and destroying the environments. And so much of the environment you can interact with too.  Like when they hit the vacuum and then need to try and like squeeze their way through and get up and then money flies out. Which, that's my first complaint with the game by the way. Unless I'm missing something and I finished the game so I don't think I am, I was a collector obsessed person during this entire game. It took me 12 hours to finish a game that I could arguably probably finish in 6 hours, but I spent so much time exploring every nook and cranny of every floor, sucking up every note, coin, dollar, gem, brick thing that I could find because I wanted money, money, money. I was trying to get as much as I could and about halfway through I started to think when am I gonna spend any of this?  You can also spend a thousand coins to find boo ghost finding thingies and that will help you find some boo ghosts. And then I think there was one more thing you could buy but I didn't buy it because it was pointless. I kept thinking I was saving money to buy upgrades. Like maybe I could suction things in better or maybe I could just have different abilities. Maybe I could actually jump properly and not just bunny hop. I felt like there was a lot more that could have done there because the game is literally littered with collectibles and money to find and I have nothing to spend them on, nothing. I only died in the game in one part and that was in the level I fricking hated and we'll get to that in a second. But still after that level, I didn't need coins anymore. It was pointless. So I ended up not collecting things anymore and not really carrying anymore because why am I wasting my time if I can't use these coins? I thought that was really weird. But it is still fun to interact with the world and try out things even if all you get from it is money that you don't need. You'll never know when you'll find a little secret or Easter egg or one of the actual collectibles that I liked getting the gems which were always themed to the floor like the music floor, the gems were music notes and so on. You never know what you're going to find.  The game is just oozing with so much charm though. I love the ghosts. I love that the ghosts in Luigi's Mansion all have very different personalities and not even just the bad guy ghosts that you battle. Like the blue ones are obviously more whimsical. They group up together and they wear things like sunglasses or they read newspapers. They remind me of ghosts like in Ghostbusters.  There were so many different enemy ghosts to fight throughout the entire game and mix in all the different boss battles because there was a lot. Just the combat with these few simple mechanics of flashing a ghost and then sucking it in. That simple gameplay never got old just because of the variety of things you had to do with it and the variety of ghosts you had to combat throughout the adventure. Okay, the game isn't without its faults and why is it? Why freaking is it that every game the water level in the game is always the worst one?  At no point do you submerge yourself in Luigi's Mansion and swim. There's just water around and it inherently makes it a terrible level.  But here's the part that's so frustrating. For some reason, the controllers in this part of the game flip from how they are in every other part of the game. So that if I was like here as Luigi in this boat, imagine me in a boat, right? And I press left on the joy con. It would take me to here and then it would hard lock all of a sudden and it wouldn't let me go any further for like no friggin reason. And weirdly, if you wanted to go further you then had to press right. Now you would think, ladies and gentlemen, that going right at this point considering you pressed left to get here would send you this way. Nope, it switches over so that right will send you the rest of the way around. It was bad enough just trying to navigate my way through the level. But there was a boss fight at the end and oh my gosh. This is the worst boss fight. This game so far has had the best boss fight I've ever had one of and then the absolute worst. This is the trashiest boss fight. I never want to go through it again. I ended up rage quitting the game one night and I had to do it the next day. The next day I woke up and then Kim and I filmed this. I'm literally about to have a friggin aneurysm and I can't I'm just gonna I have to somehow get away from him when I'm literally too slow to get away from him. I can't turn to get away from the spikes right now. I can't even begin to describe how infuriating this boss is. I don't think I've ever rage so hard. The control scheme in this game is completely broken and for the most part it's been fine and you can get around it but I can't move away from these spike and I went into the spikes and that's that's game over.  This is awful. Here's how the control should be. If I'm here and I'm holding left left should just spin me around and around and around and around and around and around and around and if at any point I wanted to go right I'd press right and I'll go around and around and around. Anyway so that sucked but it was the only part of the game I didn't like that entire level. I didn't even talk about Gooigi. That had so much depth to the game too being able to control a second character. The only thing that sucked was for the first half of the game I didn't know that I could get rid of Gooigi once I spawned him. If I double click the right thumb stick he would disappear. It was this one point right here where we're sat on this like platform that we sunk into and I couldn't get out for like 10 minutes. I had to message stupid Sean and be like hey how do I get out of this and he's like get rid of Gooigi and I was like Oh but when you're actually using it the way you're supposed to and the way that these two characters interact to solve puzzles there's some areas that Gooigi can go into that Luigi can and vice versa it's just a really nice dynamic to the game that helped keep the progression through the game really fresh just a fantastic game all around and I want to talk about the multiplayer because I played that yesterday for the first time before I do this has been sat here this whole time so first four figures they did send me this I don't know if first four figures saw my unboxing videos where silly Steven's been sending me these but they did reach out to me in my email and they were like hey can we send you the Luigi's mansion one and I was like hey yeah you can and how about that zeldi one so yeah really freaking cool Oh they put a little ladder in here they put it to wood Dear Wood thank you for joining the first four Vegas family we're honored to have our latest release Luigi's Mansion 3 Luigi and Polter Pop Collected Edition to be a part of your valuable contents and be shared among your followers the statue before you is the result of many talented and passionate people coming to build something they truly believe in through the support of you and first four figure fans Oh my it's got the pop up it looks exactly like him in the game I'm really bad about leaving things sealed but wow it smells smells really nice in there I don't care Oh wow this is heavy this is legit this is a thick battery G is what this isn't a double A this is like a this is like an A which way is on oh and his tank lights up what oh his shoes look great too it's all glass and there's like there's like a this is so incredible I adore this I love that the carpet is like pulled up too from the way he's like thank you so much for sending me this guys this is so cool actually a lot of first four figures are actually pretty pricey as I'm sure you guys know but this one's actually really reasonable I think they made this a really great price for its size its weight its quality its craftsmanship it feels weird saying that a hundred dollars is cheap but for this that's honestly a really good price oh and the I mean of course it lights up but I didn't notice and I like that it's a different shade it's a yellow light oh my god I'll have a link down below if you want to grab one if you are thinking about it and you leave here today and you decide later on you know what No, I will grab one do me a favor and come back to the video and click on my link it's actually physically clicking my link that helps me so buy one all right I said I wanted to talk about the multiplayer for the game it's really fun if you haven't tried it I didn't actually I didn't even realize it was going to have multiplayer but what they did was actually pretty brilliant when it works which is usually when you're playing with people that you know when you can talk to so the game is set up where you're in a randomly generated mansion and you can pick the amount of floors that you want to explore and you have to clear every ghost on the floor as a team before you can move on to the next floor sometimes as objectives like running around trying to find toads and bringing them back to a central location but for the most part it's you know capturing ghosts completing objectives as a team and then moving on but they added a load of extra things into it like you can actually find items power-ups things that help you that aren't in the actual game like you can find glasses that help you see the invisible things that you can bring to light you can also get a better vacuum that's not in the game it's like a lightning vacuum that I guess sucks things in better I never actually got to use it but yeah it's really fun in concept however just trying to play it on your own with randoms is kind of insufferable because Nintendo refuses to use in-game voice chat of any kind and since it's objective based it's really frustrating when you can't communicate you can use the d-pad to say thank you help me or over here but then you got to hope that A. the people are pinning attention and B. they even know what you're trying to mean by some of those things you can get trapped while you're playing you can get tied up in a rug or you can get a fake door opens up and pins you against the wall and while it's pretty easy to spot those fakes and avoid them that doesn't stop people you're playing with being idiots and walking into them and you can't free yourself of course you can ignore them like they too do you because when you accidentally end up getting caught you just sit there spamming help forever and no one will come to help you because they don't care the worst part is there's there's things like this platform where everyone has to stand on the platform and get out there guiji and once everyone's done that it opens the door to move on to the next area that you need to go to to complete the level and there was like this one time right here where there was three of us standing on here with our guijis and this one guy refused to come and help even though we kept spamming over here he was walking around on his merry way sucking up coins and doing I don't know what but essentially the time ran out and we failed man oh sometimes there's a locked door and like this guy had a key and he was like walking around with it strolling up and down hallways like nobody's business I'm standing there like over here over here over here I had no way of saying hey bring the key here oh my gosh so yeah it's a little more frustrating than it is fun but the mechanics in place just the actual idea and concept is great whatever this video was it is my video on Luigi's mansion three but I did have this figure sent to me and like what a perfect video to put it in since I didn't do my video yet but also it's such a great game I would recommend playing the first one at some point but it's not like there's a story that carries over it all there's nothing you need to know Luigi is an idiot he takes everyone to a mansion they all get kidnapped and you need to help them if you liked this video then you should probably like it you should hand flip on that subscribe button if you haven't already and if you already have and you're already subscribed don't link to the description for this little guy go


Our goal is to, as a mission, is to create and capture consumer demand wherever it is expressed across media and content environments. And so we're a performance marketing agency. We serve bitable and programmatic search, social, mobile and display programs. We create content assets, own internet assets for SEO and marketplace visibility. And at the end of the day, we're trying to help brands connect consumers to understand their purchase decision journeys to, if you will, create demand for the brands we work with and then manage those journeys to convert that demand into revenue for the clients we serve. Indian market is incredibly important for us on three levels. One is, there's a couple of hundred folks that are part of the performance capability in India. So we have an incredibly large and dynamic team. It's actually the number one performance marketing group in India now built out over time. Secondly, it's a fast growing practice and it's been growing in terms of the client engagements it has and the size of the business by about 30% a year. And this is for year on year over the last couple of years. It's recognized in the marketplace to be a leader. It's award winning in terms of the Indian competitions are for marketing effectiveness and building brands and telling stories. And then the team here is really strong because it serves both local clients in India but also is a hub, a high performance hub to serve our international clients who may need more help from the really high quality, qualified talent that's in India. So India is really important to performance overall and performance overall is a company that has 2600 employees and in 57 countries. So we're a big global operation and India would be incredibly important to that whole operation. It is one of our top five markets overall for performance and all together we're in 57 countries so that tells you where it sits. It is absolutely at the top of the set of markets that we have and a priority location for us and a very dynamic one in terms of the work being done by the teams here. I think a couple things. First of all, India right now is the fastest growing economy in the world. So one, it's a great environment to be in too. It's got the fastest growing population in the world and at some point it's going to have a bigger population as we know than China in probably the next 10 years. It's a place where there's all kinds of dynamic talent doing great performance marketing work again for local clients and for global clients and I think the upside for the team here is huge because I think in the Indian marketplace, digital is going to become more important, performance marketing is going to become more important, leveraging data and technology has become more important and I think our performance team is all well suited in those areas to deliver on that. The type of work that performance is doing in India, it includes paid search campaigns, it includes programmatic display campaigns, it includes mobile campaigns, it includes creating user experiences and the microsites and website experiences that brands need to go to market, includes the landing pages that you're driving traffic to and then it includes SEO and content solutions as well. So really the practice here is driving strategies and recommendations across paid-owned internet efforts to connect with the consumer and drive the outcome that we want for the clients we work with. The other thing with the group here is they're working with all different kinds of industries and categories. They're working with travel brands like Airbnb, they're working with financial services companies like American Express, they're working with travel entities like Air Asia. There's a massive number of brands they've won here and major brands in all categories that they're serving to grow their business. That's what the group is doing today. The vision for the future is that our entire enterprise is focused on something we call demand and response management and the whole thought of that is that we're driving performance across all media channels online and offline. We're leveraging the data from the traffic we generate to create personalized user experiences to then take that demand that we've created and convert it to a revenue outcome. So the vision for the business is end-to-end performance solutions across all forms of media content going forward and we're building out the capabilities to do that. One thing is that all the research today has shown an incredible relationship between TV and search in particular. That people see something on TV and they automatically pick up their phone or their laptop and do a search as a result of that stimulus. That's number one. Number two, there's all kinds of tools and data right now for attribution so you can understand if someone read and added a newspaper, saw an article, saw a TV message, what their behavior is that happens after that. And in all those instances, we're finding out that that mass media, that offline media has a direct impact on the online media that someone uses to convert to a purchase. So now with that mindset and capability, the goal we have as a practice is to understand all that behavior and then go to work on leveraging all those offline media investments to have them tied to the online strategies now to drive the measurable outcome. So there is measurement, but it's available through media mix modeling and then through attribution measurement from one channel's impact on another channel. And the data exists to do that now. I do. I think part of the journey of the digitally fused marketplace is just the maturing of practices. And India is so entrepreneurial, so dynamic, so energetic, and all this new talent coming to market. I think things like attribution across channels is just about the maturity of the practice and over time with all the smart folks here and the tools that are available, that will be a capability that everyone will understand more about. It may be just the journey in the marketplace right now because in other more mature markets, attribution modeling is part of every engagement. So the agency was started in search both SEM and SEO. Today, we package all of our solutions around performance media solutions, which is again creating and converting demand across mobile, social, display, search, and offline channels. There's a huge amount of expansion right now in marketplaces and commerce environments like Amazon. That's a whole other channel to sell in now. And then equally on top of that, we've rounded out all these capabilities to do things within content and own and earn environments. So we've moved from being what was once a search agency to now a full service performance agency and in some respects using all media and creative assets, just like a general agency would do, but applying direct response principles to it. So that's what we call demand and response management. And the goal is to make that the cornerstone of the performance business going forward. We've been really fortunate. Performance again, like I said, is going on its 20th anniversary. It's been growing at a double digit rate year on year. We've expanded now to have 2,600 people in 57 countries. So huge global footprint. We've made acquisitions in the past that have helped us be the business we are today. We made two in India. One was called Resultrix, one was called Convonix. Today we have this huge performance business that's made up of a performance dot Resultrix unit and a performance dot Convonix unit. They both serve local customers and they both help us with global and regional engagements as well. So right now I'd say most of our growth is going to come from organic growth based on the teams we have in place and the build out of new capabilities like demand and response management, like offline media management for direct response outcomes, like commerce and marketplace environments. We probably will always think about acquisitions, but we're very large right now. It's more going to be about taking advantage of all the teams, the talent, and the assets we have today continue to grow at a fast pace. It's a really great question. I would say it would be one in maybe the analytics area because we can't get enough of the talent and teams that help us understand all the data that's available and how to leverage that for marketing performance. So I think analytics for sure in technology. I think capabilities that help us manage all forms of media or the personalized user experience on the other side would be interesting acquisitions as well. So entities that help us with our full media capability, entities that can help us with our being able to serve up personalized user experiences to the consumers we're connecting with. So there's always going to be an opportunity to think about acquisitions. I would tell you that one thing about for performance now is we are blessed to have amazing talent, amazing capabilities. And so I think we'll always look at that, but in a place like India, for example, we've got all the assets in place. Now it's about seeing those things brought to full life and enhancing what the teams are doing today, if that makes sense. First of all, it's performance overall is one of five publicist media brands. And so we're a global brand. We're also the branded practice across the entire group. So in India and the rest of the world, performance gets to have two roles. We go out and pitch and win our own assignments as an agency. We support the performance needs of the other brands in the group that exist like a Zenith or a Starcon. So we have this amazingly great assignment. That's number one. Number two, if you combine the performance presence in India between the two units, performance.resultrix and performance.combonix were number one in the marketplace in terms of capabilities and size of our performance team. And again, in combination individually, those businesses are growing very fast. Today, performance.resultrix doing all forms of performance marketing and then reports and is aligned with the Zenith brand and helps support their assignments when it comes to performance marketing. And performance.combonix doing local assignments as well, complementary to resultrix and is aligned with the Starcon brand. Plus the performance.combonix unit helps with the international assignments through its performance hub capabilities. So they both are serving local business. They're both serving and helping other brands. They're serving local businesses and global businesses. And they come together to share capabilities, to share marketing, to share selling strategy and all those things. So there's a steering committee that meets to guide the performance practice everywhere and then those businesses run their own operations day to day. And it works very well because we've got amazing assets here and we're almost able to cover all parts of the market as a result. I'll say, you know, they probably tie into our agenda. There's probably three or four different things. So one is everyone is focused on performance marketing. So even if you're a brand marketer, you're thinking about what is the performance I'm getting from my TV, from my newspaper campaigns, from my outdoor campaigns. So everything has moved towards a performance mindset. Two, we grew up as a performance media company focused on search and now search is taking on all new forms. Obviously mobile search has surpassed laptop search. You have things like these marketplaces like an Amazon that are becoming huge environments to sell in. You've got now, the future will include voice activated bots sitting in people's homes that become an interactive way to do search and to buy products in a different way. So search is going through a transformation and the way brands are found has gone beyond just a Google and that kind of, let's say, historical search to whole new environments and the way products are being found and purchased. And then I think so much of the marketplace has been focused on media solutions and I think more and more of the marketplace is focused on content solutions and own and earn assets being leveraged to connect with the consumer to drive a purchase decision. And ultimately for performance, the goal is to build an end-to-end revenue generation engine for our clients, demand and response management where we're creating and capturing demand across media environments, across content environments and then serving up the personalized experiences to lead to a satisfied customer relationship. So I think what you're seeing is the evolution of search, the build out of commerce marketplaces and an environment that's moved from beyond just media solutions to content solutions as well. And it's very much in line with the way we're thinking about our business going forward. Over the last few years, really started in two marketplaces. One would have been China and the other one would have been U.S. and with entities like Alibaba or Amazon, these became huge environments for consumers to transact in and in essence to find the products they wanted to buy. So as opposed to going to a search engine to find a product to buy or going to a website directly, they were going to these marketplaces environments where all these products were available to purchase. And now in many instances, consumers are starting in those environments to go find what they want to buy as opposed to other landscapes. So demand is there, consumer eyeballs are there and we got in early with Alibaba and with Amazon to go build out marketplace capabilities, advertising opportunities on those sites, content and SEO opportunities on those sites. And what is a result of that, we're helping drive our client sales in those environments and this could be a fast-moving consumer goods company, a package goods company, this could be a consumer electronics company and many cases because those are buying environments, they're performing better than other search channels. So we've now built out capabilities in the U.S. We built out capabilities in EMEA. We're building out capabilities in APAC. India is going to end up being a hub for those capabilities going forward We would tell you in our new world, there's all the search social mobile we did and have done forever is a performance practice. There's the offline I talked about. We think the center of the storm going forward is these marketplaces. We think it's going to be one of the fastest growing parts of our business going forward and so we're making major investments in that area. I think they're going to be now marketplaces and media publishers. So they're not going to take the place of the media publishers but they're going to be standing up and competing with them for a share of eyeballs and share of advertising expenditures. There's no doubt about it because those marketplaces have been now where products are sold. It's where all the major brands are figuring out in many places their online strategy not only direct websites but then in addition to in-store sales having a physical presence somewhere online to sell more goods and services consumers are all going there. So my comment to you going forward is I think they're going to be very material. I think they'll compete with the publishers. They won't take away all their business but they're going to be absolutely alternative environments for the consumer to go to to find what they want. Absolutely. Yeah they say that now more people who are making a buying decision start those searches at Amazon than they started on Google. That's what's happened. There's now more purchasing behavior that starts on an Amazon than it starts on other channels and we've seen the same thing in the power of e-commerce environment like Alibaba and every single brand that we talk about the major advertisers we work with are all trying to figure out their commerce strategies right now because they know that that's the environment where the physical meets the virtual and a place where they can sell goods online. So everyone's looking for strategies in those areas. So huge focus. They're making real traction in the marketplace. They're proving environments for the consumer and they're proving environments for the brand. One of the things that makes performance unique is that we have incredibly great talent that's joined us. They're all coming into the digital environment and developing their skills and they're all seeking to do something and create value for the clients that no one else has done before. So there's a certain spirit we have to every employee that joins performance. That said, you've got more data than you can possibly imagine now. You need analytics technology and tools to manage that data to have it flow through to a meaningful strategy and an execution and a plan. But you need the people that can interpret that data to understand it and tell stories around it and that means the individual talent we have. So we believe that there's a science to performance marketing which is based on data, which is based on analytics, which is based on technology and tools. But we also believe there's an art to it, to interpreting that data, to setting the right strategy and then telling the stories surrounding all that that can lead to the next investment and plan. And so we think art and science, hands-on wheels, you need both. And to be a really great agency, you've got to have artists and then you've got to have all the science in place to go drive the outcome.


Oh I attacked you Correct. It's I am Corbin Miles. This is rick seagull Attack you too. Don't touch my camera, please. Yeah Today out after you follow us on instagram. Oh, I missed it There'll be some juicy It's so juicy Your daughter was so nice to do that. She was Still creepy Uh, so today we'll be reacting to uh the attacks of 26 11. You're welcome. This is a trailer about the um Remember that one we did that was uh Army hammer in Dave hotel. Yes. Yeah, the where they were in the hotel. Yeah. Yeah, I think this is that story I think you're right. Um, so Don't know but we got a lot of requests for this Yes, and thank you. Some of you have been asking for this for this is the one that's been around a long time This one took me. Thank you. This one took me a little time to find the english subs. Yeah, so thank you For your patience. Love you. Go There you are beat trailer Like it was using gully boy boy that's used like in like that's really cool. That's like hardcore This looks like it's hard in in the way that um An unflinching film would be about telling a story and like put it in your face in a raw Very difficult to watch way. That's how that trailer made me feel which I kind of hope it is. Yeah, because then It's obviously we know a little bit about it just from the trailer of the I forget what it was called. I know I feel bad, but the army hammer dev Patel film. Yeah It was about that it was a prestige you because that's no air air. No, it was called. Sorry guys. Sorry, you know Um, but so we know a little bit about the story, but this one looks like Obviously it was way before that. Um, but it looks like a more gritty exactly telling it almost looks like Cell phone footage some of the time right, um, which I'm guessing is what they wanted to go with And who is the guy that is the main guy talking? I don't know, but I recognize directors Yeah, I recognize them. Um, I because I didn't I didn't like the music behind it. No, no It didn't bother me I like I I was so caught up in what was being said and what we were being shown No, I liked it a lot. I just think it could have been a lot more impactful one. Maybe if you had no music Yeah behind it. That's always typically a great choice. Um, but you know, but actually it's not what's in the film It actually I got to say the music I think maybe contributed to my sense of it feeling hard and like, um Uncomfortable and what happened was was Raw and In your face and like even that shot I really like this trailer the shot where they were at the boat and the tire It's pressing up against the tire. That was a cool shot. Right. It just it kind of felt like this is going to make you Um, this is going to make you feel yeah, you're going to wish you could see it from a different angle You're going to wish you could control it and you can't control this and it's going to piss you off that you can't control it And we're going to violate you as you watch this, you know that kind of like yeah And I don't know because I'd love to learn about this event because obviously we still don't know So we need to I don't know what we need to do first. I know there's also a documentary Right about it as well. So I don't know if that's the best. I don't know if this is a great Telling of it. Yeah, what should we do first with this event? Should we do a documentary? We'll wait for the new one to come out. Right. Def Patel. Um, or stuff like that Please let us know how this film is it looked really cool. Yeah in terms of filmmaking. Yeah, um, and obviously it's a very impactful event Yeah, it felt even like watching the boats pull up. It reminded me a little bit of captain Phillips. Yeah. Yeah, that's I'm trying to figure out what it reminded me of that feeling which captain Phillips isn't really street grunge dirty in your face But it had that level of you don't know what's gonna happen. This could turn really bad really quick I get the feeling I I wonder how far this thing goes if this thing is it feels like Indox you the hardest shot in the whole thing was the I think the baby Yeah, because I'm guessing that was her mother mom or something or something that was right next to her and she was just crying and which is Just heartbreaking. Yeah Yeah, that's my my hope and my bet is when you watch this it will piss you off Oh, yeah, you know it does, you know not you won't just feel this sense of tragedy But you feel like he did at the end when he said if I could have I would have killed him with my bare hands Because I know how I felt after not 11 and I guarantee that's how they felt after this So please let us know what how should we be introduced to this event? Is it best to watch this film the documentary? I feel like those two come before the depth of telefilm that's coming Yeah, obviously I don't know how the depth of tell right how that film is obviously the trailer the trailer is pretty cool So um, but let us know glad we got to this. Yeah Um Anything else for me? Oh How about a little comment reading? Oh Little bonus everybody It's time for comment reading I just went Broadway show tune on it. Let's go with which one should we go with uh secret superstar indian food indian food Man, we've had a lot of reactions to indian food. Um, they said Y'all like this video a lot Thank you.  Is that that's the video y'all decided to read comments were right? Sorry, and there was a comment There was a comment on this one that said I want to find somebody who will look at me the way you guys look at And I forgot which food part it was. Oh, it was probably garlic naan something Oh, yeah, one of the things are there, but also I would like to clear up you said, uh At first when we ate the garlic naan By itself by itself you're like, why are you eating it by itself? That's a common thing. Yeah, we're americans eat bread by itself. We're dumb is amazing It is we love bread on its own It was also amazing eating it with the butter chicken that was glorious, but it was still just as glorious here in america I will just eat plain bread. Yeah We will it's just bread We're bread eaters so if it's garlic naan That's not just plain bread. No that had flavor and stuff in it and they're like no no no no You need to dip it in the stuff and uh, let's see when you see corbin finally cry It's with food. Yep It's gonna be the last episode of season eight of game of thrones. Yeah, we'll see. Um No, what is it? Uh, it's juicy. Yes This video is so satisfying on so many levels. I can't even it was more satisfying for us I'll tell you that it truly was and I appreciate any of you who actually tried to smell your screen Who smelled the video and people get really upset that we smell. I know why do you hate smelling so much? We're never gonna stop that. What is wrong with you? Um, hajmola is a conspiracy. Thank you. Yeah, we got that now. Yeah, I still have people Trying to tell me sending me pictures like of cola hajmola. I know no Not gonna happen. You're gonna reach 100k soon I know thanks to you. Yeah Your maniacs probably hitting 80k tomorrow. Yeah, you guys are maniacs. Thank you. We love you Hajmola is the best thing ever made. I love it. I don't know why Americans don't like it. That's a lie Yeah, you're you're trying to get us trying to convince us to People also said you you made it wrong. You're supposed to take the whole bottle Ha, I don't think so. Uh, let's see. It's better than any stand-up comedy. I know. Well, we sit down I'm feeling hungry watching this video. We weren't till we were done with it. Yeah, then we ate it all All of it. We made such a mess in that video. Yeah, it was all over. It was all over me I told you I wanted to bathe in it Try hajmola red one No, no Stop it. We're not It's over. It's done Now it's our turn to get other people to eat that stuff. Uh, Corbin had a smellgasm. I did. Yes. I did No, I literally tried to smell the garlic naan.  I would do the same thing if someone said oh smell it. I would You only tried naan veggie. Yes, I I realized that So we will do a part two and I will make it an entirely veggie episode Yes, and because I know that india has the largest vegetarian population in the world It's true. We do know that and hey It smells like gingerbread man. I laughed at that But what's the truth about that what it's definitely tell you at the tumeric and it has tumeric in it And tumeric is found in gingerbread men. So I'm not crazy It was the olfactories of corbin miles and I think someone gave you a great name by the way I love when you couldn't handle the carrots in the in the spice. Mm-hmm. Your name should be corbin mild Ah Hashtag corbin mild. I love it Oh, someone said uh, we should change our channel name to rick and morty I know you don't know them. I know who they are. That's the correct. I know who they are I've never watched it. I'll get you morty But yeah, no Foodgasm. Yep. Yep. It happens. Yep. Especially in a hufflepuff. We love our food. Uh, a couple more couple more You turned pink after eating. Yeah, you did change color after you ate that It happens. It wasn't even hot. It happens a lot to me. He actually We've talked about it. He may have a physical ice to really make fun of him for years Until I realized oh, he may actually have I don't know. It might be a decision. Who knows maybe Corbin is half indian probably just for making the perfect suggestion of using the non with the The butter chicken butter. Yes, it's true. It's true Someone said the greatest the greatest discovery in human history happened at whatever time it was. Yes When you just randomly said let's do that and eat it with the gar that was fantastic. Oh god, see I'm learning. Yep Corbin spread this contagious inappropriate. We have smelling food to rake to you know, see we've always both been in this way Who doesn't smell the food and why wouldn't you smell things with this?  Uh, yes, you figured it out. This is how you eat the curry, right? I uh, good dislike Hajmola. I agree with you Who on earth made no oh and somebody said they disliked the video just because you're disgusting Rubbing it on your face thing I I I would dislike it just for that


What's up everyone? It's your girl Kenzie here from Layton sports cards, and I'm ripping a personal here for Jeremy Z We've got five of the 2022 panini revolution wwe hobby boxes. All right, Jeremy. Thanks as always for hopping in love ripping you some WWE let's see what we can get you. Let's get some Pull some autos out of here And not guaranteed but definitely All right, we've got the rock on the lava Wow that is four out of ten on the rock Wow Big start there for you Jeremy four of ten That's sick. His stuff goes for good money too. Especially the low numbers. We'll make that one for you in supernova of Nakamura Wow, what a start What's up Steve? Hey Steve We've got Gru of the warrior and stone cold Steve Austin So John Cena and shockwave of Montes born Astro of Harlem heats and the shields Roman Reigns and Seth Rollins Here we've got cosmic out of 149 of Roshiki and Vortex Roman Reigns Big E and X pack and We've got forty four forty nine auto of the edge Wow, what a box here 44 49 Rock to ten and the edge auto to 49 Tony D'Angelo on the rookie Astro and supernova of Queen Zelina Yeah, what a box first box out of five, too We've got Shonda DeVille on the fractal and Imperio Very nice first box there. Wow Let's see if we can pop that to be hard right Sick All right box, too We've got scope of right Ray Ripley and rated RKO What do we have here Sonia Deville auto two for two on the auto boxes? There you go, Jeremy Sonia Deville not numbered on it, but we will take an auto Astro Damian priests and shockwave of Nakamura Hey Jonathan Nikki Bella on the fractal and the mega powers. Hey Jonathan These are always like Got Astro of Rick Boggs and supernova fractal of Raquel Gonzalez or that's a sunburst. Sorry five out of 99 on the sunburst Astro of iron sheet chic and whole Cogan Yeah, here two dudes with attitudes on the angular out of one ninety nine and Supernova Jimmy Uso God Naomi on the fractal and Diesel last pack box, too Nikki Bella on the cosmic out of one forty nine and vortex of AJ Styles Another solid box there get another Did get another auto? Can we go three four three Stop Chad Chad Get everyone about a 30 45 minute queue right now It's not too long and that can change fairly quick as well as I was saying earlier It's almost like 15 new products that's been added to the to the personals page available for you Between new product and some new stuff we got in stock the shield Got Seth Rollins and Roman Reigns on the fractal and toxic attraction Got some of the your stuff in Q2 best of sport and leaf metal football Coming up. We've got ricochet on the astro and vortex of Bailey Leaf metal has been pretty soft CJ Stroud is live and leaves metal metal Which is the first time I think he's been live maybe outside of Bowman U. Yeah, but redemption. Yeah Got Astro of the usos Ted Ebiasi lot of big names and that holds Couple Garrett Wilson auto Drake London auto Got Casey Kanzaro on the cosmic out of one forty nine and supernova of Shotzi Yeah, I grew of almost and RK bro D'Angelo on the rookie Astro and Shockwave Ronda Rousey Funny, I don't know if you were top-loading or if it was Sean. I was talking about Were you were you top-loading when I pulled the 101 to Holly Holmes? No, I think we're Sean. Okay I've got Dakota Kai on the fractal and Dusty Rhodes I was saying, you know, like oh a huge card, but I'm still salty because ever since like she Beat Ronda Rousey. She's never the same and someone in chat's like, yeah, Peter's so bad. She had to switch the WWE Whatever Grayson Waller on the rookie angular out of one nine nine and Apollo Crews vortex Yeah I was always I always rooted against her though I don't know like I like looking back at it now. I kind of like her attitude, you know seeing as so many W. Er UFC people are like that. Yeah. Oh, yeah Got scope the Viking Raiders and Harlem Heat. I feel like she kind of paved the way for like big kind of big Ego email the UFC fighters to like the Nunez and the Nama unices. Yeah Yeah, James Drake Astro and supernova of Bobby Lashley She was a great fighter Very technical Astro or yeah, Astro of Alpha Academy and Bruno Samartino. Yeah, that's right Yeah Got triple H on the angular out of one ninety nine and liftoff die cut Kofi Kingston Could his face on the card Cool in there. Those die cuts are harder pulls out of this, too We had a Chargers fan and in Twitch chat and I guess I struck a nerve I started saying We've got Nikki ash on the scope and ultimate warrior They call it there when James overrated because he is and then I called Kenan Allen overrated and that really got him going Yeah, we're the Astro of your Mahan and shockwave of Randy Orton Which I did rescind saying that That Kenan Allen is overrated because he's not he's very good and I do not think he's overrated now She misfractal and we've got the appa but I will Stand by I will die on the Derwent James is one of the most overrated I think I had like one and a half like yeah great years. He's played one full season since 2018 Sunburst out of ninety nine of Seth freakin Rollins and vortex Kevin Owens like it it pains Every single fiber in my body to say this but he like make up the Patrick's better than I mean make us pretty pretty don't make us really good Again, I don't I don't agree with taking safety some money that Minka and even Marcus Williams got paid, but We've got Jimmy Uso on the angular out of one ninety nine and liftoff daica of Bobby Lashley means every fiber in my body to say that but Got rookie groove of Quinn and Harlem All right Jimmy, let's get you an auto out of this last box. Let's see we go three for five That's pretty darn, and we do it's duplicate auto, but we'll take another auto a Sonya DeVille Seth freakin Rollins on the Astro and shockwave of Gunther Revolutions fire they shouldn't put it in like chronicles for football. It's on point. Yeah, I'll make the fan alone for sure live Morgan on the fractal and Sermartino Revolutions are some fun products around China on the cosmic out of one forty nine and vortex ronda rousey We've got scope of the usos and the generation X Astro that Gibson and supernova of Joey J. Uso, sorry Last pass here for you Jerry Andre the Giants and a Sean Michaels Alrighty Jeremy that will do it for your five boxes of revolution Thanks as always for hopping in and we'll get these right out to you


It looks like we pretty much got everyone. My name is John Hubbard, and I've been working on a set of APIs called pin user pages. These are variations on get user pages. So I really want to walk around, but I'm not supposed to, right? So today we have a few minutes to get MM and file system people together in the same room at great expense, and we don't have much time to talk about this, so I'm really excited that we were able to have a moment to go through this because it's important to get both perspectives on this because this is an API between MM and file system, and it's had troubles. So what I want to do is kind of get to the last slides quickly. I've got a few slides to talk about the original problem, and one slide for some of the early solution approaches that we had, and a couple slides to talk about where we are today, and a couple of pictures for illustration purposes just to show you some of the call stacks, and then a couple of slides to discuss the actual solutions. So I'm going to try not to linger on the initial slides. So what I want to do is try to just raise awareness of the problem that we've got, plan out a general direction for the solution so that once we get past the current to do items, then we actually have a solution. Now, this has been somewhat controversial in the past, so I've tried to set this up carefully and not say certain words like file leasing until I get to the end. Here's a little background on the original problem, and young car I had a really clear write up that I keep going back to. It was kind of fun because I was sitting at a lunch with LSFMM when NVIDIA tagged me with a customer bug that actually had the same backtrace, and so I was literally talking with people about it, and they were telling me, yeah, this is what's going on. This one is, there's kind of two variations to this problem. This one's especially helpful because it talks about direct IO, which is less obvious at least to me than the other way you can get it. The other way you can get it is by pinning pages with user pages and then using a device like an accelerator and then marking the pages dirty with set page dirty, and then releasing them, and that will lead you into this, but that's kind of obvious. Whereas this one is direct IO and you're not involving a device, well, there's a disc, but you're not involving a device really, and you can still run into trouble. We can come back to the slide if necessary. It's got a lot of stuff on it, but there you are. Here is a summary of what that slide is actually showing you, which is that page pinning is invisible to the file system. The file system, if you look at the bottom box, it expects that if you say write begin and then do some IO and then write end that as long as you don't have mappings, as long as the pages aren't mapped somewhere, the file shouldn't, the pages shouldn't have any changes to them outside of those brackets, same with page make write or write page. The file system has a particular view of the world that you have destroyed by calling either pin user pages or get user pages on that range because what that does is it raises the reference count. If we go back to the last slide, you'll see the details of why that all falls apart. I was really shocked to find out that this was not only a problem, but a long-standing problem and that it had just sort of slipped through the cracks because it's pretty big. The fact that MM sees the world one way, which is you can just, you know, we move pages around, you can pin them, they come, they go, and file system sees it another way, which is, you know, here is the rules for writing to files or pages, rather, and it would just never the twain shall meet, so anyway, all right, so we chatted about it when we came out, came up with some early approaches to how this should be solved and after some discussion, we figured, well, let's provide a way to identify pin pages and then use that information, plus maybe some other stuff that we're not sure about yet to decide what to do when page reclaim or something finds a pin page, so to turn that into a little bit more detail, we came up with pin user pages, which is, it's kind of like, it's the same as if you called get user pages, but you pass in a follow pin flag, that's why we keep saying follow pin around here, so I put a little note there about terminology, if we say follow pin, pin user pages, DMA pin, that all means pretty much the same thing roughly, and the output of that whole thing is a function called page maybe DMA pinned, which makes me unhappy because it's got a maybe in there, and I keep trying to turn it into one that is not a maybe, but then people tell me that I can't have that many counter bits, and so we're stuck with maybe. Although, if you get rid of all the other fields in the struck page and you're down to just like a couple, then you could put a couple of counters in there. I do think there is a path to getting you some bits in the base struct folio, I'm not going to guarantee you anything about struck page, but for struct folio, I am planning on, I think maybe you talked about this already, I'm planning on getting map count down to just a few bits, and so the current field that's being used for map count, we can also use for pin count, but you can't have perhaps as many bits as you might like, we might need to go to some kind of saturating scheme or something says, yeah, it's pinned, but we don't know exactly how many times, is there some kind of way to find out how many times a page is DMA pinned, even if it's quite expensive? Is there some way to find out how many times it's pinned? Yeah, so instead of keeping a precise count, can we keep kind of a sloppy count and go back and figure out, oh no, it actually is zero now, I know it was high, but now it's really quite low, and maybe it's actually zero. Oh, so kind of a right combining counter. Something like that, yeah. Probably not, because it has to count up and count down, as people come in, or as callers come and go. Yeah, maybe we can keep some kind of side data structure and figure it out. So you just look in the page and you say, yes, it's definitely is pinned or it's definitely not pinned, and if you, because a side data structure would solve everything, and we haven't gone there because, oh, everything's in the page and performance, but maybe if we're pushed hard enough and we need a non-fuzzy result, maybe it's time to just start scribbling, you know, data structures, a bunch of them, one per page on the side. It's been, oh. No, we don't do DMA things that often, so direct IO stuff that often, and direct IO takes quite a long time, so making a side data structure sounds like good idea, so you've just got, it just holds one count on the page, I don't know whether you've got a flag to spare to say this is pinned, but then if it's pinned, then you can go and look in your cache of the side data structures, I doubt there'd be that many of them on the system at any one time, but the file system could just make one, say. And, yeah, we looked at page owner, which is kind of a variation on that, but then you have to be configured for it, but that's like a bad version of a struct on the side, I guess, so never mind, but yeah. But having the side data structure with the actual count in it, and just a bit in the fast path, because the DMA operations are slower, they're not always a fast path operation. I know that's not always true, but it's done less often. And so you can, before the extra dereference to go into this other data structure and do your counts there, but then page reclaiming other things can just, they just say, oh, it's pinned, I'll leave it. Or, that's a good point, and I don't know why that's been overlooked. I think, yeah, I'm just thinking back about how that went through. But, yeah, that could really work. And then just, you only go off and find this other counter when you need it. One thing it would break is the existing uses of this, because copy on write has already jumped on this. So we may end up leaving this in place and then adding a side data structure. So, like, I'm wondering, like, for, for pages that are in the page cache that you care about pinning, in which scenarios would you actually run into false positives? I think the biases right now is something like 1,024, which means you would have to get 1,024 references on a page until you get like a false positive. How could that happen? Think, think about a page from libc, if you're running 1,024 processes, you've got it mapped 1,024 times. Okay. Because like the point I'm trying to make is like for, for, for anonymous pages, I think I can get them maybe out of there. I can special case, for example, if a page is exclusive, I know it's never going to be pinned, and I don't have to care about that with the new semantics that I introduced. I was wondering if you can come up with something, something similar that we, we tweak somehow, for example, the bias in a way that it is different for fire pages and for other pages, stuff like that, that we can special case based on the page type, which bias might actually be preferable or not. Maybe that would give you like more bits to make it less likely to happen or something like that. That, that sounds like a good idea. I'm a little bit lost. I didn't quite follow where, where my question to Willie was, when would you ever pin a libc page? Oh, I see. I mean, maybe for VM migration or something. I can definitely answer that. I mean, if you're doing something like, I know we want to rename it, but HMM, which is basically migrating pages back and forth between an accelerator device and, and, but you would do that with a libc code page. Um, I forget the page of libc is mapped so many times. It looks like it's DMA pinned. And so, Oh, okay. You're saying it overflows into the pin. Yeah, exactly. Oh, okay. That's a different issue. Um, okay. So I want to try that's, that's good. That's very helpful. Let's see if we can get a little bit further. Um, let's see. Okay. So this is just status. We'll go through this kind of quickly. Um, the, one of the things we learned while, um, converting various callers, a call site is something that calls get user pages is that basically if you're touching the page contents as opposed to something in struck page, usually you want to use pin user pages. Um, otherwise you just get your pages. Um, so most, most things are converted except for the file systems, uh, which appear to need an all at once conversion. I'll, I'll show you a slide in a minute. Um, and let's see. Is there anything else to mention on this? Oh yeah. Uh, uh, the low level note at the bottom, I thought was interesting because while I was converting a lot of these callers, I noticed that they were, um, they were, they were doing that pattern. They were calling, uh, you know, pin the pages, do something, set pages, dirty, unpin.  And now it looks like the pattern itself was wrong. Um, because that's basically how you get into this bug is your calling set pages dirty outside of file system knowledge.  I can't see how that can ever possibly be right. And yet it was all over the place. And so now it's cleverly converted into a central color function so that all the evil is concentrated in one spot. Um, so, uh, the second page out of two on status, uh, uh, ext four has a workaround now that avoids the original crash. So, um, Ted, so commit, uh, right there, uh, and that, that's pretty convenient. It still leaves things corrupted, but at least it doesn't crash the kernel. So it just says, okay, you know, page buffers are missing. Don't, don't try to use them. Um, and then meanwhile, um, this copy and write thing, which there's been articles about and a lot of discussion about, I'm sure if you want to see that go by, that's actually using, um, page may be D may pinned to help make a decision about what you should do when you're forking in, in doing a copy and write. Um, which is why I say that the side structure may not work or not. It can work. The side structure may have to be in addition to what we already have. If we want this to continue to work. Um, this shows a few of the, uh, selected call paths. I just very carefully picked the things that I wanted to see. Um, so I could tell the difference between, you know, what's doing IO map, what's doing get page versus get user pages. Uh, what's funneling through the IO, VEC, uh, um, I'll, I'll be either get pages, paths and what's not and, and what do I, what do I have to convert and what do I get for free? So I have a small patch set right now that goes and converts, um, some of the stuff near the bottom. So, uh, you know, instead of IOV get pages, uh, I'll be either get pages, it makes the conversion. Um, and that automatically takes care of a lot of things. I think it takes care of all the things that are calling IO map or that are using IO map, but it leaves a lot of things not fixed.   And I just showed this because everything funnels into that, but you can't, it's kind of like you can't get there from here.  And at the end, um, you've lost all track of everything except, okay, your pages come back and now you can call bio release pages and bio release pages at the moment is calling put page. That has to be converted, um, because it has to be converted to unpin user page. So now that that's converted to unpin user page, that means everything that put it in on the top up here on the submission path had better have called pin user page instead of get user page. So after weaseling around for months, poking around at ways to, you know, do an all, uh, an easy conversion, I find that some of these things are going to have to be, um, converted, you know, go into that file system, sort out which things are doing a get page and which are doing user page and, and keep track of those. So the call site needs to know the difference between pages that were acquired from, um, get user pages versus get page. Uh, so since it's all these file system people here, I just want to point out that if anyone were so inclined to go, you know, factor things appropriately for some of these file systems, it wouldn't, wouldn't hurt my feelings at all because that's tricky for someone who doesn't know the code. Okay, so here we have, um, just a couple of slides, one to help you visualize where we're going. So this is the original problem with a little file lease box on top, um, and then just keep that in mind and we'll go to, uh, a list here and we have, I guess 12 minutes and, uh, in those 12 minutes, I want to walk out here with a completely, uh, finished design for what to do after, uh, all the conversions are done. So imagine that we've converted everything that's supposed to, to call pin user pages and that's felt very nice. Now you know what's pinned, um, but so what everything's still broken. Um, so the proposal here, um, which is not something I invented, um, is right in the middle, um, require a file lease page, uh, require that someone for this page range, you have to take a file lease on that range on the address range. I guess you could call it. Before you're allowed to call pin user page or, uh, uh, with the opt-in idea, perhaps before you're allowed to call pin user page, when you pass in follow lease, which is, I just made up, um, the advantage of this is that it's a correct solution. It connects file system and M M, you know, if you're, if you're going to go work on these pages that are associated with a file system, you have to connect it to the file system somehow. And this is really the, the only proposal that I remember hearing that clearly solved it. Um, so I'll throw it open to comments, discussion. Do you love it? Hate it? Is there something better? Um, and how many people will it take to get IRA off of CXL and onto working on file leases? Wow. Yes, we are there. I was just going to say that leases were hard. There was a lot of roadblocks that I don't even remember anymore. Um, but I, I agree that, you know, the file systems need to be more made, made aware of this and there's need to be communication, but the file systems don't always like to let go of their pages. Yeah, what do you say you got a file system guy behind you? Yeah. So I mean, I don't care about that solution. I can imagine some people being potentially worried about it, right? Because what's going to happen is you're, we were basically telling the file system that all of the pages in this one gigabyte range may be marked dirty at some point in the future. Now, what does that mean? Well, it means that if those pages don't have blocks allocated to them yet, we're going to have to allocate blocks to all of those pages. If it's a reflinked file and we're going to be potentially doing copy on right when the pages aren't dirty, then the file system is going to have to do a copy on right operation on that entire one gigabyte range, even if none of the pages actually are ever dirty now, but they will be. Believe me, yeah, if you did this, you did it because you're going to scribble on the pages. Yeah. If the use cases, one where eventually they all will be dirty in any way, then, you know, doing it, you actually want that behavior. At the beginning, great, right? I actually have, I have actually implemented already what you want for network file system. And then I've abandoned it because Truncate and also direct.io and a couple of other things. It's actually really hard to get right. So I've implemented it. I kind of have it working. If you want to look at the code, I can point it to you and branch with it. Please do. But it's really hard to get right. And I don't care about Truncate. We shouldn't care about Truncate. Unfortunately, some people do. And it gets even more fun if someone's doing right and then someone does an appallocate to take a hole out of that. So you might end up squidging your stuff down. Plus, when it comes to network file systems, you have to deal with bits of your range that have different authentication things on them that you end up having to merge and stuff like that. So yeah, I can give you a code that does this. I thought it was just too complicated, but you all come to have a look. It would be good to see it does not sound promising. So I might not fully understand the leases that you have in mind, but at least for ButterFS, it's not just, the set page dirty isn't, is a big problem, but it's not the only problem. The reason why we care about set page dirty is also because before we do IO on a page, we basically lock it down so the page can't change anymore, because we take a check sum of the page. And it's kind of important, like if we check sum it, that it doesn't change after that, because we want the check sum to match, right? Well, one idea, so I got involved in this because I do RDMA or did at one point, and then I had problems with PMEM. One of the use cases that we see is for RDMA, and if RDMA is DMMA to the page, you probably shouldn't be writing it back anyway. And so one process could be, user space has to lease the page, they pin the page with their memory regions, they do their IO and they're doing whatever, and then if they want to actually F-sync that page, that they have to release the lease, and then that turns it back over, releases it from the MM, turns it back over the file system, file system does their thing. I don't know if that would be performant for all RDMA apps. That's a lot of overhead for RDMA apps, but maybe, I don't know.  Like, this is the biggest barrier that we have to pagecast sharing because the fact that MM can just kind of go behind our backs and mark things as dirty is a huge problem for us. So I don't particularly care if the solution is onerous or whatever, it's got to be fixed. And then that's to say nothing to the, like the ODirect, user space can just change things because like I straight up have to tell users, like yeah, don't use ODirect with Windows VMs because your file system and corrupted because the checksums won't match, you have to turn off data checksumming for these virtual images, right? These are terrible user interactions, user experiences, that's what I'm trying to say, that exist purely out of our own doing, right? Like, we control all of this, we're the ones that set the prop, like how these things work. I'm not super thrilled with the idea of saying, okay, this range may become dirty at some point in the future because ButterFS has a lot of scaffolding that has to be set up for a dirty range. We have to like reserve space. And only that was like, we have to be able to write that space back in order to reclaim space and make forward progress under like, you know, space conditions, right? So like being told that this area may become dirty at some point but there's nothing we can do about it until the lease is up or whatever, it's like puts us in a bind, right? That's just something that user space has always been able to do and I think that's something that maybe not everyone thinks about because with DIO, you think about DIO being to and from the file of the script you're bypassing the page cache but the corner case is that the buffer that you're doing direct to IO2 or from can be an M mapped file from the same file system or from another file system and user space can actually cause potentially interesting deadlocks if your file system doesn't handle this because the buffer can be M mapped from the same file that you're doing DIO2 or from. So I'm also wondering how is this gonna affect the DIO fast path if we then have to get a lease in order to pin a page first? I think the important thing is that that's a really damn rare thing to do, right? I mean, most users don't do that. Most of the times you see that being done is a test suite. Is it a test suite, really? It's definitely not something that user space normally does but I think adversarily. Yeah, and like IO is, because there's a very special path. We have a special path specifically for this problem, ButterFS, like and it's very poorly tested until we started running ButterFS more widely in production and suddenly we were tripping over this all of the time and this, because the only way I know how to trigger it consistently is M-MAP DIO write into an M-MAPs region or DIO read into an M-MAPs region. Like I can trigger this code path every single time. I don't think we're doing that in production but I can trip this code path consistently all of the time, thousands of times a second. So somebody is doing something in this area. I have yet to figure out what it is. That's what the original bug report was. DIO read, like this is how I reproduce problems is like I know how to trigger the path and simply DIO read into an M-MAPs region. Yeah, the original slide at the beginning was that. Yeah, so like that's my test case and I'm an XFS test and XFS has to test the deadlock because we have to do all of this like, oh, somebody dirty the page and didn't tell us. Now we have to like have an async worker thread that goes and does all of the things that was supposed to be done at like MK right time for us and then we can submit the page for writing. I think fixing this may cause performance regressions in some cases but on the other hand, if it wasn't correct to begin with, your performance was an illusion. Right, yeah, then this is kind of where I go back and forth, right?  Like they don't do data check summing.  So we are kind of letting our users run with scissors a little bit. So should we do all this work to make it better? Not, I don't know. I certainly would like it for things like page cache sharing and other stuff but. Well, that's interesting. So you say, should we do this? So I guess you're thinking that leaving it as is is gonna work out. I'm not necessarily saying that. I'm just saying that if the solution is all of a sudden all DIO for applications that are behaving properly suddenly tank, that's not a valid solution, right? Right. So Joseph, I just wanted to say it's not just Blutter FS that suffers from this problem. It's any file system on top of RAID 5 because you've done your parity calculation and now it's wrong. Oops. Without RAID 5, double buffering, right? That would be. I just got a double, but whatever it is. But one of the things that we could do is maintain the fast path for places where the check summing or for whatever reason the pages are allowed to change while in flight. File systems can intentionally turn it on for specific cases and then move over to leases for our common cases. Yeah, because I mean like Blutter FS is clearly not winning like the speed award for this path anyway. And so like I'm willing to eat it just for correctness for us. And we already have like the stable page helpers. So you can just be like, okay, this file system requires stable pages. Do the lease thing and otherwise leave. So that follow lease on the flags probably would help you then. So if the call site passes in follow lease, it says I'm ready for the new behavior and if it doesn't, then it's not. Yep, I mean that would be reasonable for me. Okay, I'm out of time. So I will let Ira come up. I can do next.


I got a lot of toys last week, John, my Airpods gen three showed up. They look very similar to my original Airpods, a little bit different. They work a whole lot differently, though. These may become my new favorite Airpods, John. I have the Airpods. Oh, gee, the original ones that I mainly only use in the office for phone calls, but their batteries are getting so low that they're not even functional for that. I have the Airpods Pro, which I tend to travel with. But the but, you know, they seal things out. So they are a very specific use case. The Airpods gen three are essentially the Airpods Pro, but with with the seal, the seal taken out of them. So you don't get noise cancellation or anything like that for obvious reasons. You would need seal to do those or at least to do those effectively. But the spatial audio with these is fantastic because you really can get a wonderful experience while still being connected to the outside world, which is, you know, for a lot of things, great. I really like phone calls better when I can hear the room that I'm in as opposed to being sealed off from the room. Yes, the Airpods Pro have transparency and I I leverage that greatly when I'm using them for phone calls because otherwise I can't hear myself and that gets weird. But but yeah, yeah, so I'm stoked about these. And of course, they they, you know, they have the MagSafe and all that stuff to charge with. So in fact, I will put them on the MagSafe charger behind me and it should light up. Yeah, there goes. Not MagSafe. Sorry, just Chi, not MagSafe. Chi, I get these things confused, John. I don't know why. That's OK.