Hello and welcome everybody in today's session, jointly between ST and QT. We are going to talk about high performing QT user interfaces on the STM32 microprocessors. With us, we have Sorin and Philippe from the ST, while Deepak and I are joining from QT OSes. And we are going to explain you how to get the best out of your products and projects going all the way from the design to development and deploying it on the ST hardware. Without further ado, I would like to welcome to Sage Sorin, who is going to be talking to you a little bit about the ST MP1 portfolio. So, Sorin. Thank you, Bruno, and hello everyone. I'll just take the screen sharing on my side and share my screen. And please confirm when it is visible on your side. Yes, we can see your screen. Excellent, excellent. So on behalf of ST, I would also like to welcome you to the webinar. My name is Sorin Meigels and I'm a business development manager for embedded graphics in ST. And I'm also joined here by my colleague, Philippe Parsh, who's an application engineer in ST graphics team. Feel free to write any kind of questions you might have. A kind of questions you might have, we'll try to answer them the best way in the end of the webinar. And I would also like to inform you that we'll launch some polls during the webinar to get the inputs for future development and also to see if you are still out there with us. The first portion of this webinar I'll have a short agenda here. It's covering the ST MP1 solutions we have for running embedded Linux based graphics user interfaces. Here we will start with from intro level graphics and end up with a product which has been announced but not yet mass market launched. I'll come back to this. At ST, we support the move or the evolution of embedded HMI's, which is continuously happening. Products are getting a smarter offer more features and this also requires a smarter and richer HMI. By choosing to include GUIs in your product, you get a more intuitive, safe, modern and valuable product. At least we believe this. And I think it's important that we all remember that the UI is the face of your product so it's a quite essential part of it. That being said, while jumping to the next slide, I think we should start the first poll. Eva, please launch this one and then we can see what it is. So the target resolution, what is your approximate target resolution for your next upcoming GUI project. So please put this in. So we put some standard ones, but of course there are deviations to this and also some going above and below. If you cannot find yours there, please put in one which is the most equivalent to what your target is. And I'll just let it hang there and just jump to the next slide. Let's give it 10 more, 15 more seconds. Great. Okay. So, first topic. Okay, we actually got the results there. Okay, jump over it. So as a company, you might have some or you do quite often have some requirements, high level requirements for your UI product. One could be we want to run a simple UI. Do we then you need to ask yourself do you really need a dedicated GPU. If you mentioned that you have a simple backgrounds and buttons sliders and you need to show some some updated values could be temperature, for example. Once one solution for this. As a platform could be the SDM filter in point three five, which were recently launched by ST. It's a cortex a seven at the 650 to one gigahertz. You have a rich set of connectivity. Ethan and USB 2.0 and so forth. And with the right level of security. But of course the main point of this webinar is we need to talk about graphics and what you can do here. So it's quite capable of running a UI, but you would not find any GPU on this device, but you have the 24 bit parallel display interface from the industry standard that display on this kind of interface. And three 2240 for the 272 and even up to 720p. But when you go up in resolution, the most simple the UI need to build. So to summarize, you can do nice you guys, which I'll show in a second video off on this MP135 with cute. There is a board support package available for this device right now. And you can run full color guise by utilizing the DDR3 and the one gigahertz CPU for you are rendering. So of course you will take up some CPU cycles for for doing this. And you can of course run the openness to Linux distribution beneath the cute. To show you the soft the capabilities of this board so we have the MP135 DK. And this is a discovery kit. You can buy online for a detusion to tune resolution and the UI here is a 24 pixel. And you have a cute UI running here with a EV charger, which is quite nice. So quite short and fast video here. Let me go ahead. So next up is could be that you're saying that our requirements are white VGA resolution with few animations. So step up in terms of performance requirements you have, and also resolution so these combined, of course, puts the requirements for the MPU and the possible GPU to a higher level. So next natural step up in performance in terms of the STM32 portfolio. It will be the MP157. This is a dual Cortex A7 up to 800 megahertz and then on the side you have Cortex M4 for real time operations. And the main graphics features which I would just like to highlight here so of course there's many other features in this product. But you have a MEPI DSI interface for display interface up to two lane. You have a LCD TFT controller which you show on the MP135. And then you have of course a dedicated GPU with OpenGL ES 2.0 and then a 32 bit DDR3 RAM interface at 533 megahertz. So step up in performance and to give you an idea of the capabilities. I'll show you this video here. I hope it's okay smooth on your side of course the internet connection can put a limit on the smoothness of the UI itself but it's quite smooth and doing full screen updates and animation zooming scrolling and so forth. This is a 800 480 MEPI DSI display, a four inch one, running Qt 5.14 I think it is, and it was implemented by KDAB, this UI on top of this board. This is the discovery kit available from us for this product. Good. All right. Next up. Let's take the next step here.  Maybe a big portion of the screen could also be you need to run some larger videos. What is the most powerful SM32MP platform we have from ST. So recently announced the SM32MP 2.5 lines are the first of the MP2 series. These micro controls are built around a single or dual cortex A35 running up to one and a half gigahertz. And then you have on the side again cortex 733 core for up to 400 megahertz for real time. Let me just emphasize something for you so you will see a platform here capable of supporting 1080p at 60 FPS. You will also see a dedicated 3D GPU supporting OpenGL 3.1 and Vulkan. These two 64 video encode and decode and 1080p 60 FPS and Mephi DSi 4 lane, LVDS and RGB TFT 24 bit. So it's quite a step up in performance. You're seeing with the MP2 series. The DK and eval kit will be available on 24 once we have a more specific date. This will of course be announced on all side. So to summarize the MP1 3.5 entry level graphics on embedded Linux 482.72 you can also go up 720p. But again, have in mind that it depends on what kind of you are doing. Are you doing static one?  I do need some full screen updates, you know, full screen transition and so forth have this in mind. But you can do nice 2D graphics RGB TFT small animations. You can set up advanced graphics for ADP also above 24 bit colors. Two and 3D animations are the VGFT and Mephi DSi display interface. And lastly, but not last the MP2.5 series advanced 1080p graphics 720 1080p 24 bit per color two and 3D full screen animations. And then you can go back to 264 video and all the important display interfaces used up there for this kind of resolution. Please launch a poll either one we added now. So which of the following statements do you find true and this is a multiple choice so you can you can select all of them one or two or three. So one I consider the MPU portfolio as a good platform for running any GUI. I consider the SDM32 MPU portfolio limited and not covering my needs. In the past I did not consider SDM32 MPU but with this enriched roadmap and QT integration I find it more relevant. And lastly, I consider using Qt on SDM32 in a future project. So let's leave it hanging there for some more seconds. So if you behind it makes sense for you and it also gives you some more clear direction in where or in which kind of product you could, could use, you can say combine your requirements. Excellent. Good. So last slide saying, yeah, thank you. Thank you very much. I'll jump over to Bruno now and Deepak and while doing this maybe we could launch one more poll while you would make transfer to your display Bruno and yeah and make this a run while we do this. Last point for me while we transfer. Please launch the last poll even and for any technical questions you might have. Please go to the SD community. We have a dedicated page actually for it, where you are able to ask any questions we have engineers ready to answer any questions or go to your local SD contact. So thank you. Over to you Bruno. Thank you very much so and speaking of questions. Feel free to pose them under the Q&A section in the zoom so just underneath on the bottom of your screen. And we are going to come back to them at the end of the video.  It's a matter of getting your design and your ideas into reality into first MVP into the first prototype. So what are the challenges that you may actually find yourselves in. We are going to talk about that then we are going to go into the workflow, how you can go from from the UI design and development into building this prototype and creating the backend for your application. And finally, we are going to show you a demo that was developed for the CES this year, demonstrating an HVAC unit where it was designed and developed in QT and put on the different hardware using put to QT and how it was deployed and debug. So, what are the challenges you most of the companies most of the teams face when they start developing on the embedded Linux devices. First is that when you take a look at how designers work and how the embedded engineers work those are two completely different roles. And designers work in the tools such as Figma or Adobe tools or sketch, and they need to transfer this design and this user experience into the product. And you can of course, either developer or designers can export manually different PNGs or BMPs or vector format graphics, hand them over exactly put where the locations are on X and Y axis. But this is all usually taking quite a lot of time. Finally, you will also encounter most of the times trouble with importing the 3D assets and how to get it across from designers into the developers hands. And we're going to talk how we saw that in a bit. Then, when you come to when it comes to creating your first prototype into testing if your application really runs correctly if it looks okay on the actual hardware. So if you are working with the embedded wise device, it's quite different to when you're just testing on your machine, and it would be maybe sometimes nice. If you could just one click deploy the application to your device and just see it live in action, bring it to your colleagues in the, who are in the project management or product management, bring it to the user experience colleagues and see how they like the product. Next slide. You will see that quite often we are faced with having to create a portfolio of devices where you will have low end device mid range device and high device. And you do not really want to recreate your whole application every time for every device and maintain it over the whole lifecycle, especially even if you have additional devices like companion apps, where you also want to retain the same user experience and the same code to run there. And finally, going from the smallest to the largest devices maybe in the future, going to something even more powerful or opting, optimizing it to something even with the lower hardware specifications. You're not going to be independent on the chip that you run on. So you do not really necessarily want to lock yourself in to a decision that you make today because things are going to change when your product comes up, and maybe you're going to create a new product or something like that. So all these problems are something that we as embedded engineers and designers face on a daily life in our daily lives and our daily work. And QT has actually quite a nice proposal how to solve most of these problems and especially working with our colleagues from DST. What we do is we have created QT bridge and design studio, which are which are going to demo to you a little bit later, which can take the design from Figma or from Adobe or from sketch and bring it basically to the QML to the application already that you can test it and run it on your Then your developers can can use QT creator and QT framework and the additional tools for debugging and flashing to run the application to test it in how it actually runs on the hardware to profile it. And then you can even pass it on to the quality assurance through likes of Squish and Cocoa to check if the if things are happening really how you want them to. And you can really check for the actual elements and inspecting the objects by property and not just by frame gravity. In the whole process, you can take a look at, for example, cute insight, which are going to show you how users are using your application. Maybe do a be testing and see in the funnels where the user interaction, maybe deviates from your intended ideas. So, the QT bridge is a standalone application, which allows you to import to the assets for mentioned sources, also 3D assets, and in some cases and some formats you're also going to be importing the animations. And this is also where you can create your user experience and your application journey, creating different states, different variants, animations, and really creating the application from the visual visual perspective. This is going to write everything into the QML. And if you have one of those, for example, STM devices, you are going to have a boot to cute images already available. So, what we're going to show a little bit later, Michael Deepak, is going to flash the board with a boot to cute image directly from Qt creator. And it will show you the IP address that runs on and he's going to be able to like, very quickly get from design into the prototype on the actual board so that you can immediately start working on it and checking how it works. And then you can use Qt framework and Qt creator, where you can develop your applications in C++, QML, get really good performance, low power consumption, you can interact with a lot of APIs for the connectivity for the sensors and so on. And you can also profile your application and debug it real time, being connected directly to the device, skipping line by line, and really seeing where the problem is. That wraps up the story from the problems to actually the solution. But this is just words. So let's maybe take a look at what Deepak prepared for us and how he's going to guide you through the whole workflow and in very few minutes showing you the whole process from start to the end and how everything nicely ties with one another. So Deepak, this is yours. Thanks Bruno. So today what we are going to look at is the HVAC demo which we demonstrated during CES and also the embedded world 2023. What we are trying to do here is to show you how easy it is to get started with, you know, product development using the STM microprocessors using the Qt workflow. So let's start with the first process, which is the UI design and development process. Let me skip to the slide. Yeah. So in this demo, you would see that we have chosen Figma as the UI design tool. But then if you are not preferring Figma, you could also use other design tools. But if you're using Adobe XD or Photoshop or other design tools, for example, Sketch, these four tools could be then used to just export these designs directly into Design Studio. But if you also don't want to use such a tool, then you can also start your UI design directly in the Design Studio itself. I'm just going to play the video. So in this video, you see that we have used Figma and the simple concepts and Figma of ellipses, lines, rectangles to create some components.  You see that these are not just static images, but components. And we use the Qt Bridge plugin, which comes with it to export this into an intermediate format, which then can be imported in Design Studio. So in this video, we would not go so detailed into the whole import process itself because there are already a lot of videos which explains this process. So let's skip to the Design Studio part. Before going there, we could also, you know, use the advanced features of Figma. For example, there is auto layouts feature, which could then be converted into its equivalent format in QML, which is like Angus. Or we could also use the variants, you know, feature of Figma, then which would then be converted into states of Design Studio. Let's move it to Design Studio. So in the Design Studio, you see that we have kind of imported all these designs into Design Studio from the Asset Import option. And you see this UI.QML, which is basically a pixel perfect import from Figma. You could also see that we could import 3D elements, 3D assets or models from tools like Blender or Maya. And there is also a 3D editor which helps you to browse around the 3D model. You can actually change the light source, the camera source to produce cool effects over here. Now the next step is to see how this runs on the desktop. So I'm just going to run this project here and see if all my expected animations are running fine here. So you see the 3D model here, which is rendered on the desktop. I would also check by going into the other screens and seeing if the animations are working properly. Yeah, so all of them are working properly. What you also see is the capabilities of Design Studio to create animations, state management, and even if you can use advanced features like shaders, Qt Effect Makers, and also profile your application using the features of Design Studio. So the next step is to see how this looks like on a real device. So that is where the Boot to Qt comes into picture. To get started with Boot to Qt, first of all you need to have an installation. So I'll walk you through how to get this installed. The first option is to go to your Medians tool, log into your commercial Qt account. So once you go there, you would find the option for both the Boot to Qt stack. So it is available directly under 6.501. So you browse a bit below, you see the MP15, Discovery and Evaluation kits. You just select Next and this would be installed. The second option is to head to your Accounts of Qt and in there click on the downloads and you would find this under the QBSP option and you then go ahead and select the Qt version that you want to work with. I choose 6.302. You choose the host where you want to work with and then this would show you the list of devices. You download the QBSP niche that you want and then head back to the Medians tool where you can check if this is available under any of these Qt versions. If not, you can just go to the Browse QBSP files and select this file and Next and this would basically install the QBSP package as well over here. Now what is the Boot to Qt? So to explain it in an advanced fashion, so basically the Boot to Qt has mainly three features or three components to say. The first thing is that it has an embedded Linux, Yocto-based embedded Linux image, which then could be flashed onto these devices of 135 or 157. And this also includes a cross compiler toolchain that you could use to create images for this device. It also includes integration with the Qt Creator and we are going to see how it is integrated with the Qt Creator now. So you head to the Edit Preferences and you would see the different kits available and you see that already 6.5.1 and 6.3.2 is available under the section. Now the next point is about flashing this. So under the tools, you can just go and select Flash option and you would need to insert a USB or an SD card. In this case, I insert an SD card, choose the proper Boot to Qt image, click on Next. And this creates an image onto the SD card, which when completed, I plug it onto the device and then it starts like this. So this is the Boot to Qt image. You have multiple options here to get connectivity either through a LAN cable or a Wi-Fi network. So what is left now is to actually be able to do the prototyping even at the design phase without any C++ code available at this point. So this helps you to even understand how the independent UI is going to behave. Is there any performance issue or is there any phone which is not rendered properly on this particular screen. So that's the advantage that you get by trying out these designs at the design phase directly onto the Boot to Qt device. So you see I head back to the design studio. Inside the design studio, I have the option to select the different kits. So you see I can choose a desktop or a Boot to Qt device. So I then head to the edit preferences and here I can basically add a new device. So I added a device called SDM32MP157. I can give the IP address so that it is able to communicate with this device. So once this is done, basically I make sure that the Boot to Qt device is the selected kit for this particular QML project and I click on run. So you see the assets are now then copied onto the device and you would see the design already running on it at this point. So this is where I would use it to check whether all the transitions are proper. If the phones are rendered properly and all that stuff. So the next part is basically building the project, deploying and debugging issues on it. So we are still at the design studio. So you have a whole bunch of QML files. Now we have to pass this smoothly to the developer. So we have an option within the design studio to basically make a CMake based project out of this QML project so that the developers can start working on it. And when you click on this option, what happens is it creates a main.cpp and creates all the CMake list.txt in different hierarchies of the project includes all the QML files so that it is able to compile out of the box with Qt creator. So you see I go to file and then export project, generate CMake build files and click on OK. And so this would have created all the necessary files required for compilation. Now I head back to the Qt creator where as a developer, I'm going to check whether I have configured everything properly. So I'm going to add a device, which is a boutique device. I enter the IP address so that I can talk to it. The important thing also to check is whether you have mapped the kit with this particular device. So that's what I'm going to do. I head to the kit and I'm going to map this kit to this particular device. So once this is done, I can start loading the CMake list.txt, which is the format supported with Qt 6. So once you load this, it's going to parse the CMake file and look for errors. So here I have to check which all kits I need to select so you can choose Android desktop. In this case, I'm going to choosing the boutique kit and it goes through the CMake and finds that everything is fine and it is ready to build. So we go ahead and build it. So once the build is done, what is left is to deploy it onto the device and that is exactly what we're doing right now. So we clicked on the deploy, it's able to put it directly onto the device. So the difference from the last time and this time is that now it's actually a complete application and executable which is going to run on the device. So you see, yeah, it flashed or it started the application and now I'm going to just play around with the user interface. So I'm checking the different implementations which we had. We tried to move around the 3D, it's working fine. I tried to change the temperature and it crashed. So you have a bug already and now we have to start debugging it. In Qt Creator, we already have the debugger as an integrated product. So you can try to debug the application and reproduce the same scenario and then you would see that, hey, there is a bug or there's a crash. In this case, it was a segmentation fault and then it would tell you where exactly it failed. So it's just like the GDP but then integrated into the Qt Creator. Now you can just do, you know, check the values of the different variables whether it is proper at this point of time. And with some debugging, we were able to understand that, hey, there was an issue that this MQTT manager itself was not initialized. So we go back and fix this issue and then we try to rebuild it and run it again. I go back with the testing and go through the same sequence. Everything is working fine. I tried to change temperature and now it works fine. So one bug is solved. There could be more bugs. So we are trying to navigate through the whole system. This is a 3D part. So if you had seen this part, so these are the 3D models that were imported from Glendor and when you click on this, it's changing the layout. So you can actually do much more with it. For example, if you kind of like change the temperature, you can change the light source of this 3D object so that the room changes its color from red to blue. So there was a lot of possibilities that you could do with the 3D and this is running on the Steam 32157. Just go back to the other screens and see if all the animations are fine. Yeah, it seems to be working fine. All good. So now it is time to check the same implementation on a different product portfolio. And this is the Steam 32MP135. So as you have noticed, this doesn't have a GPU. So with QML, we basically could use the same QML so that it understands if there's a graphics accelerator back end and if yes, it's going to use that. But in this case, it doesn't have a GPU, so it's going to use a CPU for the rendering of the artifacts. And we also have replaced the artifacts of this project with some images instead of the 3D part so that everything works smooth. So you see that the 3D part is now replaced with static images. But apart from that, you see the performance is up to par with what we saw in the 157 as well. The features are working fine. The animations are cool. So we now go to the other screen and see if everything is also equivalently smooth over here. Yeah, this also appears to be smooth. And let's also check one other animation in the home screen and the settings. Yeah, okay, let's see how this works. Yeah, this is also smooth. So yeah, so basically what we demonstrated right now is the capability to use the same code and write it for different product portfolios, one as a low-end portfolio, one as a high-end portfolio. I hand over to you Bruno for the rest of the slides. Yes, thank you very much for this short rundown to the presentation. Yeah, so as you saw, it was very easy to get your designs onto the hardware and to really utilize the possibility that MP1 series from the SD provides. You can easily prototype and create designs that you can really check if they're working using Design Studio. Then you can put it into Qt Creator, create backend services, create the backbone of your application, run it, debug it, test it. And it is all possible on all the targets ranging from the low-end to the high-end devices. And Qt offers a long-term commitment to supporting the SD MP1 targets in the future with BSPs and all the releases that Qt is going to offer. Once of the release schedule, Qt is releasing a new version kind of every year, and some of the releases are marked as a long-term support, which have a support for roughly three-year cycles. If you choose a version now, you're going to be receiving fixes and security updates for the whole next three years without having to worry about any kind of API changes. And in terms of Qt, all the Qt6 libraries are binary compatible between one another. In terms of the new features that were introduced with Qt6.5, the libraries are now available directly on Debian, so what you can do is you can immediately try to run it on one of your favorite distributions. We introduced Qt effects and an effect maker, so you can simulate different particles and effects in the 3D and 2D spaces. We have added connectivity through the GRPC protobuf and CAN, so you can easily inspect the messages and objects. And those are marked as a test preview in the current version, and we're probably going to be propagated in fully supported versions in the next releases of Qt. Hopefully you can see Qt location and map view, so in case you have use cases where you need to show the map, you need to do a map interaction with zooming when we're panning the map with creating points of interest, points on the map. You can all do it out of the box using the tools that you have directly in Qt. No need to bring in big other APIs and break your head how this is going to be implemented. That would be all, and thank you very much for listening to this part. We have another poll, which will maybe be interested in learning in which of the devices would you maybe be interested in. There are also some devices which are microcontrollers here mentioned in the list. So feel free to fill it up and tell us what are your thoughts on the next harder targets. Also, feel free to ask the questions in the Q&A, we have already a few questions, and we are going to be answering them right now. So, Dmitry asks if we are going to share a live video or the event. Yes, it's going to be available in the Qt resources part, so you can just put this into your favorite search engine, and in a few days it's going to be available there. There's an anonymous attendee who is asking what if I prefer to use but acute Linux, are there any advantages for using open ST instead. It's nice if you prefer but acute but you can also use the open ST maybe Philip, you can tell me a little bit more about the open ST. Yeah, I mean, with the QBSP you have the advantage to have an already compiled image so you don't have to launch a big distribution compilation so it's much easier to use this QBSP. You also get the advantage to have a Qt creator environment setup that is really to use, and you also get the benefit of using the 6.5 release. For the open ST Linux distribution today it's on 5.15 release, so it's one limitation you don't have all the APIs that could be available for with the 6.5 release. In a few months we will also deliver a new X Linux package over the ST Linux distribution for dedicated for Qt on MP2, so we will have a much easier setup for debugging and launching application with Qt creator, but it will be still on 5.15 release. Okay, thank you very much for the info. So the next question is from Nicholas asking what is the pricing of Qt. Is it royalty based or there is a license. Qt has the licensing model, basically it is covered under the GPM V3 or using the commercial license. I, to be honest, I do not know the prices exactly, but in case of device creation if you are shipping the devices there is a bit of royalty. And in terms of the license, there are possibilities for different licenses with device creation, or if you're just creating application that you cannot, for example, on your phone or your PC, or even just for the designer. So it's something customizable and that is tailored always up to the customer so I would encourage you to, if you're interested in that topic to reach to us and we're going to connect you to one of our account managers who is going to be taking a look at your case and come to you with a quote or more information to me. Next question comes another from Anonymous and testing Qt, a boot to Qt on the MP157 and there were some frame drops, what could be the issue, maybe Philippe you can take that one. Yeah, we had an issue with the very last 6.5.1 with some performance or some visual artifacts we are debuting this so it will be corrected as soon as we can. So, yeah, let's see where we will fix the problem. I would encourage you to go to the community and to the SDMPU space and then the graphic space and then put in maybe more detailed what you're what the issue is and what you're experiencing and then we can maybe try and help you and also discover maybe some other things to optimize. Yeah, and this goes for everyone. Yeah. Another point, some of the polls were done. And we got a lot of answers from you and thank you very much for this. We also saw some of a lot of you are targeting 720p and 1080p. That's cool. And really a high resolution. So if you are targeting this kind of resolution I urge to encourage you to get in contact with your local SD representative for cute and then and then we can can disclose more information directly to you as a possible SD or already SD customer on the MP25 product. Okay, so maybe I have a question for you as well. What is for example the maximum resolution that I could run from the MP125 if I wanted to for example connect to some some larger screen. I did a bit about this earlier so it's not a one line question. So there are so many ingredients to defining what kind of resolution or any kind of UI you are able to do one on XY platform so if you take into consideration the resolution itself if you just have a white background is quite easy to draw. There are quite a lot of many. That's a rendering cycles or GPU features then it's quite fast and easy to do then you add some buttons and sliders and text, that's also fine. But once you start to do more, more animations requiring more GPU resources or CPU resources, scale rotation full screen updates and so forth. So it's less render time and less time to to do the update to the to the display. So it's always a trade off. So the MP135 for example could go much higher resolution than the 482 72 and 180. If you do a very static UI. But again, it's very dependent on what kind of you are you're doing. And I can also imagine you Bruno and Deepak you also have many customers where they have a platform and they develop the UI they have some performance issues because sometimes you do overshoot what the designers are aiming for and then you as an engineer needs to to figure it out how to solve it. So yeah. So it is not straightforward to do it. Okay, I mean, everything depends on the your use case. So the next question from Andre, maybe Deepak, do you want to take that on over. Yeah, definitely no issues. So the question is, whether there's an additional fee for using the cute bridge if you already have a commercial license. So basically depends on what kind of commercial license you have. There's a development portfolio where you can either have an application development professional or enterprise or device creation professional enterprise. So with all the different commercial offerings from cute what you get. It's a design studio professional, but this does not include the bridge. So if you want to use the bridge so there should be a separate purchase of design studio enterprise. Features like in the bridges for all the different applications and some external plugins as well. Yeah, so you can always talk to one of our managers we're going to describe a little bit more about that. That being the last question I would like to thank you for your attendance. And very happy to have you here. So feel free to reach to either of us when you're developing your next projects and new ideas, bringing it to the implementation, and we're going to be there to support you. Thank you very much and have a nice rest of the day. Bye.


Good afternoon everyone and welcome to this celebration for Nassau County's own Derek Henry. I'm wanting to raise here all my family's here and all these people are like family so you know all the kind words and you know for this moment so special to me and some of my trips for the rest of my life. Me coming home and seeing this sign you know it's kind of like bringing tears to my eyes. You know my coach Pat you know it's what he always wanted and I'm just glad to be here. You know just to be able to be possible and so thank you.  We are blessed to know people I can affect in a positive way and continue to do that. I have this platform.


Ever wondered about the latest happenings around Shiba Inu's price and future predictions? Well, you're in the right place! Today, the live price of Shiba Inu stands at 0.0000871 USD, with a 24-hour trading volume of 260.99 million USD. Shiba Inu is up by 1.24% in the last 24 hours. Notably, Shiba Inu currently ranks 19th on CoinMarketCap, with a live market cap of 5.12 billion USD. With a circulating supply of 589.35 trillion Shib coins, the maximum supply remains unavailable. According to price analysis, Shiba Inu is showing a bullish trend. The resistance at 0.00009900 USD remains a significant hurdle for the bulls. However, if the support level of 0.0000850 USD holds firm, we might witness Shib inch closer to the resistance and potentially break above it soon. Technical indicators such as the RSI and MACD indicate that the bulls are regaining strength. Meanwhile, the Money Flow Index suggests increasing buying pressure. If this trend continues, Shib might break past the resistance and aim for higher levels. Shiba Inu's ecosystem is expanding with the launch of an exclusive magazine, the Shib, offering in-depth information on the cryptocurrency's progression and milestones to its community. Looking ahead, our Shib price prediction for 2024 anticipates a minimum price of 0.00001358 USD with an average of 0.00001408 USD. Shiba Inu price forecast for the same year suggests the coin price could attain a maximum of 0.00001620 USD. Remember, it's a volatile market. Always conduct thorough research and look out for clear positive indicators before investing. In the world of investment knowledge is power. Subscribe to our channel for more investment news and stay ahead of the curve. Thank you.


Hello everybody, I'm Lyra and today I'm going to show you how to make slime with only three ingredients. The three ingredients you'll need are PVA glue, hand soap, and magic slime activator. You can buy the activator on Amazon. You can add the ingredients in whatever order you like, but I'm going to start with the glue. You need half a cup of glue. I'm going to add a tablespoon of hand soap. You don't have to if you don't want to. I'm only adding it because it smells delicious. The smell is love hearts. Before you add the activator, you'll need to give it a good mix. I'm adding 20 ml of magic slime activator. Once it's got to a gooey texture, start kneading it with your hands and it will become more like slime. You need it for about two minutes. But again, it depends on the type of activator because sometimes you use a different activator than it comes together quicker. As you can see here, it's starting to come together now, so I'll just need it for about 30 more seconds. If it's still a bit too sticky, then you can try adding a bit more of your activator when it will make it less sticky. If you want it to become more stretchy, then you can put it in the microwave for about 10 seconds. So here's it before. It's not very stretchy. I've just put it in the microwave for 10 seconds. Now look how much more stretchy it is. This is the only basic slime. If you want it different colours, add a couple of drops of food colouring just after the hands. You can make your slime more exciting by adding flown beads, fishbowl beads and glitter. The only limit is your imagination. Good luck and happy slime making.


Oh god, I have to pause this. That is... Oh, that felt horrible. I remember now. I remember everything. Why is this up on my channel? So this is the third time I'm now going downstairs to get my computer, which is the thing I've gone downstairs three times now to get. It's the end of a long day. I have no brain. Remember the computer. Remember the computer, Joe. Ta-da! Hello there, my beautiful, lovely, intelligent, talented, sweet, and delightful internet friends. Welcome back to my channel. Thank you so much for joining me here today on a monumental day in my life, and actually that's not facetious. It is a pretty big deal today. Well, hello there, my beautiful internet friends. Now, before we dive in, I want to make a quick edit because I lied unintentionally in this video. I'm gonna say in this video that we are celebrating today the one-year anniversary of my second amputation, but that's not entirely accurate because someone, someone in charge of editing in this department, aka myself, I did not get the editing done in time, so this is a couple days late. The actual anniversary is August 27th. Ironically, that's also my wedding anniversary. Happy five years to us. So please forgive me that this is a few days late, and without further ado, I hope you enjoy it. One year ago today, I had my right leg removed again below the knee. What happened, if you aren't familiar with my channel, is I had a leg amputation in October of 2018, and it failed, and so I had to have it redone.  Allow me to supply you with the handiwork, the proof that this actually happened, and not only that, but I also have a number of videos from the time of my second surgery. However, a few months ago, I realized, I have no recollection of making these videos, and when I say I have no recollection, I mean, I actually have no clue what is in those videos. Here's a fun fact. I was pumped full of a lot of pain medication, especially that second amputation, and I function very well under heavy medication. At least I look like I function very well, but unbeknownst to me, there are about two weeks of my life that are just missing. In fact, I had friends who came and visited me, who I had no idea had come and visited me for months until they referenced it. That was embarrassing. So what I wanted to do today to celebrate the anniversary of one year down with an amputation that actually worked, finally being able to do things, getting out, getting hiking, getting moving, getting stronger slowly, but surely is watch some of those videos. I've intentionally saved these for this particular video. Like I thought about at least previewing those videos when I realized that I had no recollection that I made them and just being like, what did I say in those videos? But I trusted the fact that if I had said something bizarre, someone probably would have told me by now and decided to go on faith and wait until today to watch those videos. Let's dive in as we do so. If you wouldn't mind hitting like on this video, hitting subscribe on this channel, that would be absolutely fantastic. If you felt like it, no pressure. Huh! I survived second amputation. I think that should be I survived the second or my second amputation. Apparently my grammar skills were not top-notch while drugged out of my mind. Ta-da! Oh. Good morning, my beautiful internet friends. That is- Oh my God! Okay, so this is, guys, what I need you to understand is that I look like I'm talking like a normal human, sleepy, but a normal human. I, my brain was really drenched in chemicals and it blows my mind how much of a sentence I could put together. It's been a minute since I talked to you guys. I just want to drop in and say that everything went really well. I know so many of you guys have sent me messages saying you're thinking of me and praying for me and- Okay, so okay. Just commenting that way. All right, more of the video I watch. I noticed that I am pretty out of it. I'm still stringing sentences together, but they're a little slow. With any luck, I should be able to get a prosthetic leg at like eight weeks post-surgery. And I did! Which is cool. I didn't know it then. Obviously I had no idea what the future was gonna hold and I was really scared. So we have come to my amputation, losing more of my leg video. It has a number of views on it, right? Like 300,000 people have viewed this video, but I have no idea what I said in it. So this will be a surprise to all of us. We're going to start with the moment that I was waking up from amputation. How do you feel? Emotional. Very tired. Emotional and very tired. To be fair, I don't think that was the actual moment I woke up from anesthesia. That's the moment they wheeled me into the hospital bed. Okay, so as I'm watching this, some of it's coming back. You wake up with just the doctors and nurses generally speaking and they kind of have you come to a little bit before you're able to see your family. I do remember waking up with the nurses. I remember being upset that Brian wasn't there, but I wasn't in a ton of pain that time, which was awesome. Pain last night was horrible, but they finally got things more even though. I know they kept me there for five days, meaning that the pain was pretty significant. I remember, like I said, flashes. I remember it was not a fun experience. There's so much of this that is just missing from my brain. But I'm sure it will be a-okay. Sometimes it's not. Sometimes it's not always okay. Sometimes things go horribly wrong. I love him so much. He has my little pessimistic, realistic, adorable husband and the best support in the entire world. What are we doing today? So I have weird allergies to things and surgeries and I was itching and itching all night last night and I asked the nurse to check on things and they said everything was fine. Then I asked them to check again today. And an interesting development occurred. So this now what my back looks like. That is-oh, that felt horrible. I remember now. I remember everything. Not quite everything, but I still have scars from that. Just so we're clear. Oh, but just wait, just wait until later videos for more of a crazy allergic reaction. Okay, so after that they were able to get the pain under control and I go home, but what happened next? I am back at home from the hospital and there are so many things I have to tell you. So many things that have happened and not gone according to plan. And holy crap, it has been an adventure. Whoa, do you hear that coming in the music?  And then this happened. So this is a problem. My cast just fell. I am so tired. I am so, so tired. You can just see it in like my drooping eyes and like barely being able to put words together. Poor baby Joe from a year ago. Literally just fell off my leg. I am so tired and so exhausted and I- There we have it, yep. I guess the thing to do would be to get the cast back on my legs so let's try that.  What the heck? Oh no. Oh it pains me. It pains me to see me try to do this and like scrape my incisions back into the cast. Okay so this is like a day or two after I got home. Ah, I do have a vague recollection of filming one single shot of this video. I remember thinking I should really get my cast back on before I film this but I'm gonna blame it on my chemical soaked brain that I was like, let me film it first. Maybe not the smartest decision but it worked out just fine. I wanted to hop on here and give you guys like a day 12 after amputation kind of update but I can't do that without telling you a little bit about what's been going on behind the scenes because holy crap. Yeah, something happened and we need to talk about it. Pain and just out of it and just felt just ugh you know and he was like, well let's just take your temperature and it turned out that I had a fever of over 100 which surprised me because I was like I'm fine like don't worry about it I'm totally fine and we don't even need to take my temperature but he was like yes we do and I'm glad that he insisted on that.  I'm really talking up Brian a lot in this video but to be honest he totally deserves it and there's nothing he can do to stop me from talking about how cool he is. So there. Brian was like really insistent that I go up to Denver the next day and get the cast off and like talk to my doctors and I was I'm gonna be honest I was like really stubborn and did not want to go. I was. That sounds like me. Pretty sure I felt Brian pretty hard on this. Pulled me up to Denver and I was super ticked off about it because I'm like everything's fine like it's gonna be all right guys. I was so wrong. I was wrong.   I'm not squeamish but that makes me want to go throw up it doesn't look good that was on my skin I also still have very faint scars of this infection or skin reaction I mean for the for the fact that I don't remember filming or editing this video like I remember snippets of that zombie leg day because that'll get seared in your memory but I edited decently well like there are parts I would have taken out now with a with a full brain but totally stoned out of her mind Joe and its videos all right I mean like it's not bad I wouldn't recommend it but it's not bad what else we got heavily drugged amputee dot dot dot fails I'm not sure that I want to watch this come back to day 13 of post amputation round 2 recovery since my cast fell off I have been wearing the belt that I need to when I get up and do stuff let me let me tell you guys good job Joe classy I think I'm gonna start a new fashion statement with it and just like keep this trend going even if I don't have to wear it anymore because guys this look is hot let me show you we got this uh nice where did I get this music from we just cinched that on in guys oh my god there we have it there are two things that I feel that are really important to share right now first of all I tried to take the battery out to start my camera drugs are fun kids don't do them secondly do you have any idea how hard it is when I'm stuck at home all day alone knowing that my leg is like a zombie underneath my cast also knowing that my cast comes off because you know this happened my cast just fell off literally just fell literally just fell off my leg to not take my cast off and just see how it's doing just see how things are coming along just see if maybe the zombie leg invasion has spread and I know I'm coming home right now oh my god this is what I was this is what I was obsessing over during the day it makes sense frankly it does make sense life is pain life is pain all right joe calm down honey oh my god did I do amputee ASMR when I did that when I was still recovering from surgery okay I do remember I think I remember filming this video but I'm curious how bad it is because I was still drugged up at this point you know how ASMR like makes your skin do the weird crawling thing it definitely makes mine do the weird crawling thing oh god this is this is cringy okay I have to stop this video right now why is this up on my channel okay so this is about the time that I start remembering more of memories like I remember filming editing the rest of the videos at least I have some vague recollection as I was like coming to from my body being drenched in narcotics like I want to say that no one should let me edit and film videos when I'm heavily drugged but at the same time those weren't that bad all things considered so maybe they should I don't know um it was weird going through that and being like oh yeah I remember that oh yeah I remember that I think more of my memory is there than I think it is it's just fragmented and just weird feeling and I still have absolutely no memory of my friends coming to visit me and I'm sure there's other things that I don't really recall as I kind of alluded to in some of the video the pain from the second amputation was a little more severe like it extended out a little further than the first one so I was on a different cocktail of medications and I think one just sort of like wiped my brain a little bit more than the others but it was fun going back through that it was also weird I'm like oh yeah that happened oh yeah that happened too and that other thing but at the end of the day I'm here I made it through and I'm really excited more excited than I can tell you I'm really excited to say that I'm one year out now and I made it and it was a good thing I was really scared that it was all for nothing I was really scared that I was going to have to go through that second amputation which was not a thing I ever would have chosen to go through and that it wouldn't work and that I'd be in the same place and I'd never be able to leave as a prosthetic leg and I don't know what tomorrow is going to hold but I know that today I've been able to wear my leg I was able to clean my house I worked out for 40 minutes this morning I'm moving forward and there's still lots I want to do that I can't do just yet and there are pieces to figure out at the end of the day I'm so grateful I'm so grateful for this past year it has been absolutely incredible to be able to move forward and to see why this all happened in the first place why I went down this path so I could get active again so I could live in less pain and guess what today almost two years after my amputation a year after my second amputation I am in less pain and I am able to do more more than anything can I just say thank you thank you so much for being here I can't believe that some of you were watching those videos as I was publishing them I know that many of you have been watching this channel for a while and so many of you saw those videos from Barry Drug Joe when they came out and you remember them more than I did you're still watching this channel now you've watched this whole journey and I don't know so many of you like I may never meet you I hope I get the chance to but holy cow guys you've chosen to invest you know minutes out of your life watching mine and hearing about mine and it feels surreal and it's such an honor I'm so grateful for each and every one of you and I really really mean that I don't take any of this for granted it is it is astounding and humbling to me that you want to hear what I have to say or just that you're here so thank you thank you so much thank you to my patrons who continue to support this channel who have supported me for the last year and a half it has made such a difference I cannot tell you truly thank you and I'm gonna end it there this was fun to go back through I'm gonna let you in on a secret I'm thinking for the two year anniversary of my amputation I'm gonna go back through the first videos I ever made on this channel which are videos when they still had two legs when I was trying to make the decision to amputate or not I have not gone back through those videos I think it might be a little emotional not in a bad way just like oh wow wow that was I was trying to decide if I should change my life forever and take one of the biggest risks you can take and watching that thought process and watching what I went through I think I think that's what I'm gonna do for my big two year anniversary the two year anniversary is also the one year anniversary when I got this prosthetic leg so it's a good anniversary but full of memories and emotions anyways thank you for being here you could be anywhere in the world doing anything right now and you chose to hang out with me and watch a very drugged show I did very drugged videos and it means the world to me that you chose to hang out with me for a little bit I love you guys I'm thinking of you and I'll see you in the next video bye guys


The study examines predictors of belief in COVID-19 misinformation across five national samples from the UK, Ireland, USA, Spain, and Mexico, finding that while public belief in such misinformation is not common, a substantial proportion views it as highly reliable. Increased susceptibility to misinformation negatively affects people's self-reported compliance with public health guidance about COVID-19, as well as their willingness to get vaccinated against the virus and recommend it to vulnerable friends and family. Higher trust in scientists and having high enumeracy skills were associated with lower susceptibility to coronavirus-related misinformation, suggesting that interventions aimed at improving critical thinking and trust in science may be a promising avenue for future research. This article was authored by John Rosenbeek, Claudia R. Schneider, Sarah Dryhurst, and others.


So, next topic is sub-obstraction or native ZSwap. So what is the problem here? The problem here is that the current implementation of ZSwap is that ZSwap is just an end memory compressed cache for swap. The way it is implemented is that it is, it's very conveniently placed at the very last step before swapping out or swapping in a page so that the rest of them doesn't have to be aware of it, which is very convenient from an implementation point of view, but it also has a few problems. First of all, you cannot use ZSwap without having an actual swap file on desk. The second thing is, if you do have ZSwap and the backing swap file, you end up actually wasting capacity when you're using ZSwap because every time a page lands in ZSwap, it's slot on the swap desk has to still be reserved. So this is wasted swap capacity that you have to keep around but not actually use. And then if you're swapping out a path and a page and you end up putting it in ZSwap, then you end up executing some code that you don't really need, like for example, you have to go through the swap slots and cluster management and all this code in the swap file to figure out what to do, but then you end up not doing anything with it and then just compressing the page. The fourth part is that reclaim is unaware of ZSwap. Reclame today will decide to swap a page not knowing if it will end up being compressed or going to a swap file and then on the long term, you want to factor in memory tiering and ZSwap versus a far memory tier which is faster, it would be nice if reclaim knows which is which so that it can make informed decisions about where to put the pages. So who cares about all this? Google cares, obviously, because we have been using ZSwap without backing swap files in our fleet for over a decade now. So we can say that it is a valid use case from our side. There is some interest from Chrome OS and Android in this. I don't know if it's going to actually have a valid use case, but there is some interest. Meta is interested as far as I know, especially in terms of losing capacity on swap files when they use ZSwap. There was also mentioned in the main English that Katoops also have a similar thing to Google where they use ZSwap with a swap file, but they intend to never actually use a swap file just there to allow them to use ZSwap. So the proposal changed after a lot of discussion in the main list. This is the simplest idea that we can do in the short term, which is basically introduce a simple and directional layer in the form of this XRA right here. We can have, instead of putting the swap entry directly in the page tables or the Schminpage cache, we can have an index into a read history put in the page tables and Schminpage cache and also use it to index the swap cache. And then this XRA can tell us which swap file we're using, and then we can use what I would call a virtual swap file for ZSwap, which basically would be a swap infrastructure that we would use to keep the implementation as close to the day as possible to represent ZSwap. And then right back would be moved outside of ZSwap, which is already an ongoing effort to be just moving entries from one swap file to another. So there is already, yeah, okay, never mind. So yeah, so this is basically just the proposed short term solution. I'm not very fond of this. I would like to go to the medium term solution, which I think might as well do the nicer thing. So fundamentally, we have the same thing, but instead of having to use a hack and have like a virtual swap file or swap infrastructure for ZSwap, we actually abstract away the swap operations. And then we have read page, write page, duplicate, free, all the things that we do today with swap files, which are already implemented for swap files. But then we also implement the missing ones for ZSwap. So ZSwap already has the equivalent of read page, write page, alloc. We just need to implement things like swap counting in ZSwap. And then this XRA contains an encoded swap entry, which basically using the lower bits and the pointers like Matthew likes to do to either have a swap entry or a pointer to a ZSwap entry. So in this case, basically we go through the XRA and then we know, okay, this page is in a swap file. This page is in ZSwap. And then we act on it accordingly. And then when write back happens, we just update this XRA. The page tables remain the same. Page cache remain the same. Everyone's happy. And this enables other optimization in the future like swap off. You don't need to go walk the page tables to do swap off anymore. You can just change things in this XRA directly. And also you have the option to drop the swap entry once you swap in a page because the page tables no longer have the actual swap entry. They just have an index in this XRA. So this is the median term idea that I'm more in favor of. A more long term idea, which was actually the original proposal, is an actual, can you actually go back? Sorry. Yeah. So there is already a red-black tree inside ZSwap that maps swap entries to ZSwap entries. So this XRA is basically pulling this outside of ZSwap and generalizing it to other swap files. And then the write back logic already lives in ZSwap. So we would also be pulling that out of ZSwap. So this is generalizing some things that ZSwap does today to all swap files and letting ZSwap just handle what it should handle, which is just compressing memory. Next slide, please. So an even longer term idea is to even go one step further with the abstraction and instead of having the XRA have like a swap entry or a ZSwap entry pointer, we can just have a swap descriptor. The swap descriptor can have the same encoded swap entry, which can be a swap slot in a swap file, or a ZSwap entry, or whatever we need. And then we can directly store the swap cache here as just a for you pointer. You don't need to do anything more than that. And we also can put the swap count in there. And what this buys us is that we have a common place to implement swap counting, swap cache, and all this is independent from the underlying implementation of the swapping backend. It could be ZSwap, swap file, something else in the future. It doesn't matter. A core swapping code acts on a swap descriptor that's independent of the actual implementation. And this basically buys us a cleaner abstraction and potential for a lot of code cleanups. We can get rid of things like swap address spaces for swap caches and the current swap counting code, which is fairly complex. But obviously there are like problems that come with this in terms of memory overhead. We have to pay the price of a swap descriptor for every swap.page, which is about 0.6 to 0.8% of the size of memory that's actually in swap. And then for things like cluster read ahead for rotating desks, we would need to have some way to, we have a swap entry and we want to swap in the next 10 swap entries. So we need to, given that, go back to the swap descriptor to be able to upgrade on it. So we would need to have reverse mapping, which is even worse. And then generally this would be a larger surgery in the code. You'd be changing the swap counting implementation, swap cache implementation. So this is something that we can just keep in the back of our minds for the long term, I guess. And Kristi, you have another long term, Mattia, but before we move on, any questions that people have, Matthew? So the cluster read ahead thing that we do for spinning media, that just needs to die. I fully agree. I fully agree. And I think folios are how it dies, because we need to get to the point where we're not writing out individual pages, we're writing out entire folios. So that naturally gives us the contiguous logical is the same thing as contiguous physical. And at that point, we don't need to do this reverse mapping trick. We can just do a logical read ahead. And honestly, that's what we should be doing anyway. And everything gets more efficient. And we can delete a whole bunch of crofty code that was introduced for spinning rust. Yeah. And I would just add that people with rotating or very slow disk avoid using swap under all costs. So we probably are optimizing for somebody who is not really interested in that at all. Yeah. I just want to note that cluster read is not currently only used for rotating disks. It's also used for Schmem in general, even on non-rotating disks. So we may need to bounce some code around to get around that. Isn't that still basically legacy that nobody did the optimization to get rid of that? Because, I mean, TempFS should be using larger allocations. Right? So I'm saying that SchmemFest also gets the same space. Yeah. I fully agree. I'm just saying today, we're not just doing that for rotating disks. But yeah. And yeah. Any other questions before we move on to the other long-term approach? Yes, please. Actually, it's not about the problem you address. But I have some sort about the GSwap related to CXL-DLM. Because, you know, I think the underlying idea of a GSwap in CXL-DLM counters because the GSwap, it basically, it GSwap condition, the CPU is available more, but the memory is limited. But CXL thought it's different. CXL, the CPU is a, CXL1, the CPU is available, the memory is limited. So, we thought the U2 that Google is using GSwap. But what if you adopt a CXL-DLM, then you have a more memories, then probably in the case that the swap has to be used. But what if you can use the CXL-DLM without compression? You're basically saying if we do have a reliable CXL for memory-based solution, then do we need GSwap at all? Yeah. Actually, we are making some subtext for CXL-DLM. And we made the so-called the CXL-Swap. It implements a point swap, but without compression. I see. Yeah. So, how do you think this makes sense for your use case? This is a question that we're actively looking into. I don't think we currently have an answer as far as I know. If anyone in the room has a better answer, please correct me. But it is something that we're looking into. But I don't think we have a definitive answer of, yes, this will work for us. We don't need GSwap anymore. No, this will not work for us. I don't think we have the answer at hand. Just a comment. I think it's a good idea. But on the other hand, I mean, CXL, the one benefit of CXL is the cache line access. If we reduce that to be a swap device, then, I mean, how is that different from other like RDM-based solution, right? So, I think we are not very fully utilizing CXL for its full potential if we only do that as a swap. You had a point? No, no, no. Thank you. Right, so, yeah, that is an open question. But like we said, I think there's more applications to CXL. And also, we don't have an answer today of what we want to do when we have a ready for memory solution. And I would just say that you do not have to use swap, right? So, but if people are planning to use swap as a form of reclaim done, it's probably good to look into some way to make it long-term, better scale for a new world rather than rotating disk that is heavily optimized for. So, I think that something needs to be done in that direction. Right, all right, I fully agree. My main concern is that someone would say, no, we still need cluster read ahead. If no one cares, then, yeah, by all means. So, one more thing I'd like to add is that we're not sure whether CXL memory would be available for client devices. And our client devices, namely Android and Chrome OS, are highly relying on this model, ZRAM. So, if CXL memory would be available for those devices, then that would be great. Yeah, one question I have before I hand over to Chris to the room. So, with something like this, we incur, for ZSwap, there's no extra overhead. We actually can save a bit of memory. So, for, like, ZSwap files on desk, we pay the extra overhead of having the XRA on the way, which is 8 bytes in the best case, I'm guessing. And then, for that, it's even more. It's like 20, 30 bytes per swap entry, which is 6 to 8, 0.6 to 0.8%. So, how much do people think this is, basically? How bad do people think this is, in terms of overhead for ZSwap? Is there anyone with any thought? It seems like a small enough overhead that I'm not willing to squawk about it. The only concern is, if you're doing memory allocation in the swap path, then you need to be very careful. And, but I'm sure you know that. Yeah, yeah. There has been ideas. Like, if we use slab for them, then slab is already, somehow we'll have a catch for it, and then we will also talking about if there's a way to, I don't want to divert the talk, but till slab, this allocation is using the reclaim path, we'd want to prefetch more eagerly, but I don't want to go there. Yes, that's what's swap over NFS or NBD in general, all about, and that's really tricky code. And regarding the overhead, we used to have that swap tracking in memcg in v1, once upon a time, and the overhead... Still do. We don't have that. Which version? Which kernel version? Yeah, I mean, it was an old thing, but even back then the overhead was considered to be quite high for some people, so for example, we as less didn't have that code enabled by default. And, but, I mean, times are changing, so maybe that overhead can be digested much better these days. I don't know. And is that overhead really per page or portfolio? That's a very good question. That would be per folio as far as I can tell. The swap cache should be per folio, the swap count, if we're swapping the whole folio, everything should be per folio as far as I can tell. So, yeah, so when Matthew's done this, the overhead will be lower. So here's one more spoiler for tomorrow's talk for you about anonymous folios. Anyway, I will hand over to Chris now. Hi, the other idea I have is basically a more VFS-like implementation for the swap file, which allows individuals to swap devices. They have their own implementation of how they manage the free slot and how they manage the swap account, et cetera. And then, we can basically assign one swap file for the G-swap or something, and then the other one doesn't, so that it doesn't have to pay that, these basically the XRA in front of, because this one is, if you turn that on, you will impact every swap file there, and then the idea mostly, can we narrow down these to only impact the G-swap and not the other one, and allow the other one to keep their current behavior? And if somebody preferred that, or we just, like... I'm just worried that somebody will say, oh, since we make this change, and then, like, my swap file or my nice per-swap entry usage go up after I swap something, and we know that the usage case, the machine will constantly have some swap, like Google tried to aim 20% of the memory swap, and then Android's roughly the same, like, 20%. So how much memory that corresponding that you actually, because of making this change, and then end up that we can save a little bit that actually probably matter for some people? Or at least I'm not brave enough to assume that, okay, those memory ways doesn't really matter. I want to retain the possibility to get them back. We are some kind of option. And pretty much that's it. Any questions? Isn't that a question that Google can ask itself, like, ask the Android people if 0.6% is too much for them? Like, don't you guys have the data? Yeah, well, we have a formula to calculate, like, how much memory it translated how many engineering times, and yeah, I haven't done the calculation, but I'm sure it will be some, it's not zero engineering, basically, it will be. But I mean, you're saying, like, to decide between VFS and the other thing, you're saying that asking the room about are these overheads too much to pay for that direction so we should go this direction. Is that the question you're asking? Yeah, provide an option so that we don't have to pay that per entry, per swap out page entry for those, those are always resident in the memory. After you swap them out, you have to keep some. Another idea is that maybe you can do a second-level thing. Some of these entry metadata, they get right through the SSD, and then you kind of like file system, you do, I know, you load the I know first and then you load the corresponding block, and the same can be done for swap, but basically you do a two block read in order to actually locate the page. And then you can save some memory that you always keep in the system. So I remember people including me complaining about swap code for a long time, and it's always been like, can we just rewrite? Yeah. Rewrite it in a VFS file like style of ways, or would the last proposal actually take us closer to that than the other one with the, like then I would most certainly prefer that one. Yeah. I mean, you'll have to rewrite everything again, like you'd still be like we're rewriting everything, apparently. Maybe that's a good thing. Yeah, rewriting job security. One thing I'd like to point out is that through the slides, ignoring the first proposal, so this is just about how far people are willing to take it. So this is minimal overhead, but like the least abstraction possible, this is the clean abstraction, but more overhead obviously. And then this is a way to remedy the overhead of previous ones. So it's just about how much overhead and how much complexity the community is willing to pay to this. And also it's important to point out that in this case, if ZSwap is not enabled, this XORA can just disappear. If ZSwap is not configured or not enabled, then the swap index can just be the swap entry. We don't need to pay the overhead if ZSwap is not used on the system. If it's all swap files, we can just do what we do today and use the swap entries. Yeah, but if you come to LSF and show people the pony, David and people are going to say, we want the pony. Like if you show, if we do all this work, we get the best thing, that's what everybody wants. No one's going to tell you, oh, put in some technical debt, we'll let it get away with that kind of thing. If you show us to the end, the best thing we're going to ask, the best. Right, but the more you want, the more you pay in terms of, well, you pay, you got to do the work. Right, but you also have to pay in terms of code complexity, right? Nothing is free. So if you want to decrease the overhead, you have to pay in code complexity and maintenance also. As it looks, if you go to the VFS style, in the end it will be less code complexity. So it will be some transition, but in the end it will be written as it should have been. So that's the pony. Right. But yeah, I guess we should have thought about engineering time before we came here, but definitely something to think about for the next telescope. And how much are you willing to contribute towards it? Can we switch? Okay, I guess if no one else has more questions, we can give everyone five more minutes of break. Anyone? Calling once, calling twice. Okay, five more minutes.


This is TFNN the Tiger financial news network Good morning everyone Basel Chapman on this Wednesday. They are the 4th of October. We're looking at the Dow up 31 points It's nice to be able to say up 31 points. Oh 19 33,023 This is a very important moment Just I'll do this during my show in the meantime S&P because I think that we're getting closer and closer some really important about another four or five hundred points If we get that to the downside, that's where the key support is going to be. We're looking at the S&P up 8 at 4236 Lousy day yesterday under the 200 period exponential moving average the QQQ and DX 100 trading vehicle We're looking at 150 356 50 Also this H pattern This is going to be very important because 151 is really key support and it's right now at 156 That's good. Looking at the IWM the Russell 2000 whoo ugly down one at 170 point 14 these small caps that just terrible Gold gold should be trying to ready today. It's not it's down seven at 1834 it just looks oh It's very close to some kind of support based on measurements, but I don't see any left side key A trough on the left side that should be a hole that this particular point Okay, we're going to go to crude oil crude oil is trading down sharply. It's remember. I said I've got an alternate count I believe that's really an E that says in C And if that's the case we can go down to the 76 is a 75 There appeared a couple of weeks I don't know yet because the USO did exactly what you would look for and I went to that peak D and I was pulled back So we've got crude oil pulling back. You got the TLT Try to rally a little bit it's up 72 cents and 85 78 and then you've got the dollar and the dollar was pulling back earlier It's still down 39 ticks and one oh 106 65 a lot to see because with yesterday's very sharp pullback I'm anticipating that there is some kind of a rear just a rebound But I don't think we've got the exact low and I'll talk about that when we get back because that ricks index Spiled up to leg C to the 200-period moving average in the weekly chart And it looks to me like it's got a little more energy to go for another couple of days Well, we'll be back when we'll talk about it in my target technicians our check up Hopefully called any news there. See you in a few moments