Hi, I'm Cynthia and I'm a Griffith University Student Ambassador. If you're interested in a Korean business and government, come along to Open Day on Sunday 11th of August to see what Griffith Business School has to offer. You can trade on our Bloomberg terminals, check out our digitally enhanced classrooms, and get advice on how to give your career a competitive veg with a university degree. I would highly recommend the Student Leadership Program because it really complements your degree, the value that you'll gain from enhancing your leadership skills but also surrounding yourself with like-minded people. They're there to encourage you and to support you on whatever it is that you're doing and you get to build that network, not just from the people that you're meeting in university but then also people from outside of university in the industry that you want to work in. At Griffith Business School, we have access to Queensland's largest Student Managed Investment Fund right at our fingertips with a focus on sustainable, socially responsible investments. The $250,000 fund has already seen some encouraging results. So we use the Bloomberg terminals to guide our analysis. Bloomberg is used by investment professionals worldwide so it's the closest thing that we'll get to on-the-job experience in the classroom. You can see them for yourself and learn much more about the fund by joining us on Open Day. I received the Griffith University Pro Vice Chancellor's Business Scholarship Award. The scholarship has most definitely helped lift some of that financial burden that comes with studying at university, whether textbooks or even to cover fuel or living expenses, the support network at Griffith is great. People kind of sell themselves to you short and think that, oh no, I can't apply for this, I may not be good enough but scholarships are more accessible than people realise. So it's really worth taking the opportunity since it's there and on offer. Open Day is on Saturday 11th of August. Come find out how Griffith University prepares its students for the rapidly evolving world of business with degrees centred on ethics and sustainability. Visit the Griffith website to plan your day.


Hi everyone, Joe for jaspyscasegrakes.com with a real fun one here jaspys high roller mystery crate random hit number five We've got a nice ceiling. You got a little floor right here Right some stuff's gonna be under that price point some stuff's gonna be about that price point and some stuff is gonna be way over the price point just like usual just like usual but uh White talks at Dodgers on the background white talks up early 15 spotters of 15 items here A lot of different stuff what let's let's see what we can get out of here big Thanks to this group for making it happen thanks to the people who bought their spots straight up and Congrats to the winners who bought their spot who won their spots in those mega box breaks that we were doing So we'll show you all the hits first. We'll pause video type in all the hits Run the randomizer and match up with something. Hopefully something cool There it is. There's the crate of mysteries the mystery crate What secrets are you holding mystery crate? We'll have some boxes here first and we'll type these in the order that I pull them first one is crown royal basketball 2223 crown royal basketball Wow, we'll send this to you sealed whoever gets it and then the other box Wow a Box of 2223 prism basketball Hobby We'll send that to you sealed as well now. This is 2022 23 by the way nice, so We'll send that to you sealed you can rip it yourself if you want to if you win it or you can sell it if you want to It's yours. All right now the rest of these should be cards First one is 18 out of 49 Alperin sangoon RPA from Panini one-on-one basketball nice He's having a solid he had a solid season Then we've got good time to get Jordan love People were saying that the price of his stuff has been going up pretty steadily Nice Jordan love right here. That is 47 out of 99 Then we've got a Panini prism autograph. That's wow. That's de Montess a bonus eight out of ten from 1617 prism basketball It's pretty awesome. He's pretty good Yeah, Jake Berger is a beast. He's up to bat now Got him on my fancy team do killing and Boppe from tops chrome 28 out of 79 From 21 22 tops chrome soccer, maybe champions league still cool Boppe says he's not going anywhere This doesn't want to go anywhere. There's rated rookie auto Trey young from Donner's optic hoops. Nice Was that a graded card it is Jalen Hertz 32 out of 49 and graded in eight from 2020 Panini contenders football. That's pretty sweet Next up is my homies Patrick Mahomes 2017 Panini prism football PSA 10 That's a rookie Mahomes right in 2017. Yeah, I'm gonna be part of that That quarterback show on Netflix looks interesting net Kobe Bryant Wow From 1718 Panini prism its autographed an SGC 8 5 on card auto He held that card at one point. That's awesome. Miss Kobe Bryant.  How about some Mickey Mantle from 1969? PSA 5 not a bad grade for a vintage card Not bad at all more Mickey Mantle 1961 PSA 4 Throw in some vintage card vintage graded stuff in the mix We got a BGS 9 5 That is Michael Jordan from 0304 SP game used authentic patches 9 5's centering edges surface of 9 5 corners are a 9. That's pretty cool Wizards Jordan 81 out of 100 right there as well What else is in here? It's got a couple more to go. We got a thick one here. It's Christian Polisic From eminence soccer One of the big American stars here trophy case gold ink auto one out of five. That's pretty cool All right, and last but not least this should be the 15th hit nice some AD Anthony Davis 24 out of 25 two-color patch not to grab And flawless from 20 20 and 20 21 awesome, I Think that's it for the hits to take a look. Yeah, no more the creative mysteries now empty now We're gonna pause the video when we come back We're gonna have the hits all typed in and then we'll Randomize your name randomize the hits and see what you end up with so stick around we'll be right back All right, welcome back everybody. I've got all the hits typed in you got the two boxes, and then we've got the cards all the way down One two three four five six seven eight nine ten eleven twelve thirteen fourteen fifteen Then we got one two three four five six seven eight nine ten eleven twelve thirteen fourteen and fifteen All right now The here's the moment here. Let's roll it. Let's randomize names and hits three and a five eight times Your names first one two three four five six seven and Eight We got Jason down to Chris Three and a five. That's eight eight times four the hits one two three four five six seven Eighth and final time after eight. We got the 1969 Mickey Mantle down to the Michael Jordan SP game used relic graded And here's how it shakes out everybody Jason you got the Mickey Mantle 1969 tops baseball PSA five Chris with the crown Royale basketball sealed box and The Kobe prism auto SGC nine five on that grade Chris You also got the twenty twenty two twenty three prism basketball hobby box You got that seal we'll strip it to you sealed Jason with the Jordan love contenders optic rookie auto forty seven out of ninety nine Chad with the Mbappe tops chrome a soccer autograph thirty eight out of seventy nine Chris with the Anthony Davis flawless auto 24 out of 25 Hilton you got the Jalen Hertz contenders auto thirty two out of forty nine and the Christian Policic eminence soccer autograph to five all aboard the big hit express Chris you got the Alperin sangoon panini one-in-one basketball RPA 18 out of 49 James You got the de Montes a bonus prism auto nine out of ten I think that was his rookie year John with the Mahomes prism relic PSA 10 from 2017 Panini prism football Carl with the Mickey Mantle 1961 tops PSA four Hilton with the Trey young Donner's optic rookie rated rookie auto and last but not least Chris with the Michael Jordan sp. Game used relic number to 100 BGS nine five Wow a lot of great stuff here. We've got two sealed boxes that are pretty nice and We've got some nice hits in here as well a good mix, too We've got some nice basketball some football some older stuff some soccer We got some football. We got graded cards Here we've got we've got some Kobe's or the Kobe was at eight five by the way I wrote nine five on there, but the Kobe was an eight five nice auto got some vintage baseball That's pretty sharp. We got some Jordan. We got some soccer. We got some train whistles. We got some brow We got some great stuff. I don't know when the next mystery crate is gonna be but Next time you see one go and get it on jazzy's case breaks calm. I'm Joe. I'll see you next time for the next mysterious mysterious case


Hello, everyone. Myself, AS Falmari, Assistant Professor, Department of Humanities and Sciences, Balchand Institute of Technology, Sholapur. In the last video, we have defined analytic functions, necessary and sufficient conditions for the analytic functions, and we have also studied some important notes based on the Cauchy-Riemann equations and the analyticity. In this video, we will discuss analyticity and the derivative of some elementary trigonometric functions. The learning outcome of this lesson is, at the end of this lesson, students will be able to verify Cauchy-Riemann equations and analyticity of a given complex valued function. So, before going to start this lesson, pause this video and check whether the functions e raised to x sin x cos x hyperbolic sin x hyperbolic cos x are continuous. I hope all of you have returned an answer. All these functions are real valued differentiable functions and we are knowing the property that differentiability implies continuity. Therefore, as these functions are a differentiable one, that are also continuous. Therefore, the answer for the question is, all the above functions are continuous functions. Let us consider some examples. Example number one, show that the function e raised to x into cos y plus i sin y is analytic. Solution. Let us denote the given function by f of z and f of z has always in general form u plus iv and it is here provided as e raised to x into cos y plus i sin y. Let us multiply by the exponential to this bracket we get the function as e raised to x into cos y plus i e raised to x into sin y. Both the sides are of the complex expressions. Therefore, equating their real and imaginary parts, we get u equal to e raised to x into cos y and v equal to e raised to x into sin y. Now, in order to check whether the functions are analytic or not, we will use the sufficient condition for the analyticity. The first condition is to check whether the given function satisfies the Cauchy-Riemann equations or not. Let us consider the first one CR equations. Here, we have provided the functions u and v. Let us differentiate this function u partially with respect to x treating y constant we get dou u by dou x equal to as y is constant cos y is constant write it as it is and the derivative of exponential as it is e raised to x. Similarly, differentiate u partially with respect to y treating x constant as x is constant e raised to x as it is and we know that the derivative of cos y is minus sin y. Therefore, the derivative becomes minus e raised to x into sin y. Similarly, differentiating v partially with respect to x we get the derivative of exponential e raised to x as it is and sin y is constant we have to write it as it is and differentiating v partially with respect to y treating x constant we get as x is constant write e raised to x as it is and the derivative of sin y is cos y. Now, from these four derivatives we can see that dou u by dou x and dou v by dou y has the same expression it means dou u by dou x equal to dou v by dou y and dou u by dou y is equal to minus e raised to x into sin y and dou v by dou x is equal to e raised to x sin y. Now, there is a difference of the sin only therefore, we can say that dou u by dou y is equal to minus of dou v by dou x that is from these four equations we can see that the Cauchy-Riemann conditions are satisfied. Let us consider the second condition continuity of the all these four derivatives. Now, these are the corresponding four derivatives just we have discussed that exponential sin are the continuous real valued functions again we are knowing the theorem that the product of two continuous functions is again a continuous function. Here all the four partial derivatives we have obtained as the product of continuous real valued functions therefore, they are also continuous therefore, by the sufficient condition the given function f of z is analytic everywhere here we have not obtained any condition for the x and y therefore, we can say that f of z is analytic everywhere in the complex plane f of z is an entire function. Now, let us consider the second example test the analyticity of the function w equal to sin z and hence derive that the derivative of sin z as cos z solution. Let us denote the given function by f of z and we know that f of z has a in general form u plus i v and here it is provided as sin z. We know that z is a complex number which is given by z equal to x plus i y. So, we can write this z as x plus i y we get sin z as sin of x plus i y. Again we know that the trigonometric identity sin of a plus b equal to sin a into cos b plus cos a into sin b by this identity the sin of x plus i y reduces to sin x into cos of i y plus cos x into sin of i y. Again we are knowing the relation between the trigonometric and hyperbolic functions cos of i y can be replaced by hyperbolic cos y and sin of i y can be replaced by i hyperbolic sin y. After using these two identities in this equation we get u plus i v equal to sin x into hyperbolic cos y plus i into cos x into hyperbolic sin y. Now, both the sides are the complex functions. So, equating the real and imaginary parts we get u equal to sin x into hyperbolic cos y and we equal to cos x into hyperbolic sin y. Now, in order to check whether the given function is analytic or not we will use the sufficient condition for the analyticity. The first condition is to check the Cr equations. Differentiating u partially with respect to x treating y constant we get. Now, as y is constant we can write hyperbolic cos y as it is and the derivative of sin x is cos x. Again differentiating u partially with respect to y treating x constant. Now, as x is constant we can write sin x as it is and the derivative of hyperbolic cos y is hyperbolic sin y. Similarly differentiating we partially with respect to x treating y constant we get. As y is constant we can write hyperbolic sin y as it is and the derivative of cos x is minus sin x. And finally differentiating we partially with respect to y treating x constant. As x is constant we can write cos x as it is and the derivative of hyperbolic sin y is hyperbolic cos y. From these four equations now here we can see that dou u by dou x is exactly equal to dou v by dou y and this dou u by dou y is nothing but minus of dou v by dou x that is what here we have written. From these two equations we can say that the given functions u and v satisfies these CR equations. Now let us consider the second condition continuity of all these four partial derivatives. Now here we can see that these partial derivative contains the product of sin cos and the hyperbolic sin and the hyperbolic cos. And we are knowing that the trigonometric sin cos and hyperbolic sin cos are the continuous functions. Again we are knowing that the product of two continuous functions is continuous so that we can say that all the four partial derivatives are continuous. Therefore the two two sufficient conditions are satisfied hence we can say that the given function f of z equal to sin z is analytic everywhere that is the f of z is an entire function. Now to obtain its derivative in the last video we have studied the theorem that the derivative of an analytic function is given as f dash of z equal to ux that is ux here represents the partial derivative of u with respect to x plus i into partial derivative of v with respect to x is equal to.  Now in order to convert it to the function of z we will transform these hyperbolic functions into trigonometric with the help of the relation between trigonometric and hyperbolic functions. Now we are knowing that hyperbolic cos y equal to cos of iy let us replace this hyperbolic cos y by cos of iy and minus as it is and replace i hyperbolic sin y by sin iy. Now we can see that this is the expansion of cos of x plus iy which is nothing but cos a cos b minus sin a sin b and we are knowing that x plus iy is nothing but what z therefore cos of x plus iy can be written as cos z. Now this is the derivative of sin z. One important note similarly we can show that the derivative of the function f of z equal to cos z is minus sin z.


Hello, and welcome to the session in which we would look at economic value added, also known as EVA. Economic value added is a different form of something that we learned about prior, which is called residual value or RI. So it's very important if you don't understand what the residual value is, it's beneficial if you go to the prior recording and view it, otherwise I'm going to be explaining residual value very briefly before we start. Also, before we start, I would like to remind you that if you are an accounting student or especially if you are a CPA candidate, I strongly suggest you check out my website.  What I can be is I can be a useful addition, like a supplement, like a vitamin to your studies, and I can add 10 to 15 points to your CPA score by helping you understand the material better. I teach you the material from scratch in contrast to your CPA review course. So here's my offer to you. Are you willing to risk $30 to try it for a month to find out whether my website and my resources can help you improve your performance on the CPA exam? If not for anything, check out my website to find out how well is your university doing on the CPA exam. I have scored by university as well as section. I do also have other accounting finance tax and audit courses. Please connect with me on LinkedIn if you haven't done so. Check out my LinkedIn recommendation like this video on YouTube and share it. It doesn't cost you anything. Connect with me on Instagram and Facebook. So when we spoke about residual income, one of the disadvantages of residual income was that the required rate of return might be chosen unreasonably or at a wishful rate or arbitrarily. So the required rate of return could be too high. And as a result, managers might make the wrong decision by not selecting certain project. Why? Because the company set up this required rate of return too high. So economic value added is a different form of residual income. Basically, the computation is basically the same. We're going to be using different terms, but it's a remedy to this problem, to this high required rate of return. So it's a remedy for this unrealistic required rate of return. So how do we compute residual income? Simply put, we take after tax income, then we compare after tax income, the difference between after tax income and the required rate of return times the divisional asset. So if our after tax income is 10,000 and this whole parentheses happens to be 8,000, well, we have 2,000 of residual income. And this is based on the required rate of return. So simply put, to be more specific, I'm assuming here we have 80,000 of division assets and the required rate of return is 10%, gives us 8,000. So that's basically residual income. What's going to happen is when we compute economic value added, the same concept with slight adjustments. So rather than using after tax income, we're going to be using adjusted. We're going to make some adjustments to income. Rather than using the required rate of return or all the hurdle rate, we're going to use something called WAC, weighted average cost of capital. I'm going to be defining those in a moment. And we're going to multiply by not the division's asset, it's the adjusted invested asset. We're going to start with the division asset that we're going to make small adjustments. Simply put, we're going to make an adjustment to income, an adjustment to the required rate of return, an adjustment to division asset to find out what's either is the economic value added. Simply put, basically the idea it's the same thing as residual income. Okay. So what do we, what type of adjustments do we make to income? Where we're going to eliminate what we called in quote, accounting distortion. Like what? For research and development, what we do for research and development gap, when we have research and development, we expense research and development, we assume they have no future benefit, therefore they get expensed. If we have any research and development, what we do is we don't treat them as an expense, we treat research and development for the purpose of Eva as assets. Then we depreciate them little by little. But initially, what's going to happen is what we expense, it's going to come back and increase our net income, because we're going to be removing the expense and moving it to the balance sheet. Then we're going to expense a little bit of it. But initially, it's going to increase our income. Same thing with advertising. When you advertise for gap purposes, you expense. And what's going to happen is we're not going to expense it. We're going to take, we're going to take this advertising and add it back to remove it from expense, which means adding to our income. Then we're going to amortize it in pieces over the life. So this these are the basic adjustments for the income. For invested assets, if we have any current liabilities, we'll deduct the current liabilities from invested asset. And we have to compute what we called WAC, the weighted average cost of capital. Remember the required rate of return, that's basically, that's the hurdle rate. That's basically the company can set that rate. Now we're not going to go with that. We're going to go based on the actual form capital structure. Basically, we're going to look at our debt. We're going to look at our equity. How are we financed? Then we're going to find out how much does it actually cost us? Cost us in terms of capital structure between debt and equity. So the best way to let's illustrate WAC first, because it has some computation. Now in a managerial accounting or a cost accounting course, you rarely have to compute WAC, the weighted average cost of capital. But nevertheless, I'm going to go ahead and show you how we compute the weighted average cost of capital. Usually, it will be given to you. But let's assume a company is financed through the following. They have notes, which is loans. They have bonds, which is loans, and they have common stock. And I made the number 6 million for a note. They have a loan for 6 million, 5%. They have bonds, also the form of borrowing of 8 million, which is they're paying 6%, and 14 million in common stock. So 28 million is the total capital. And what we have to find first is the weight of each one. So first, we compute the weight. How much does the note represent of the total capital structure? If we take 6 divided by 28 or 6 million divided by 28 million, 21.5 will do the same thing for the bonds, 8 divided by 28, which is 28.5. And for the common stock, 14 divided by 25. Our tax rate for the purpose of this example is 20%. Then what we do is we find, we're going to take the weight. Notice first, we compute the weight. This is the weight for the note. We're going to take the weight and multiply it by the interest rate, which is 5% on that loan. However, because it's a loan, we get a tax deduction. So what we do is we don't multiply it by 5%. We want to find out what is our net cost of debt. So the bank is charging us 5%. That's fine. That's fine. Let's assume we have $1,000 in a loan times 5%. We pay per year $50. Okay, that's the bad news. That's the bad news. We pay $50. The good news is when we are computing our income minus expenses, what's going to happen? We're going to deduct this $50. Well, if we deduct this $50, this is going to reduce our taxes by $50 times the tax rate. The tax rate is 0.2, which is $10. So simply put, we paid $50 to the bank. As a result of this, we saved $10 on our taxes. So what is our net tax? Minus $50 plus $10. So we end up paying net of tax $40. $40 divided by $1,000, really our net rate is 4%. So I showed you the math. Now, how do you compute this automatically? You will take your bank rate, which is 5%. You multiply it by 1 minus the tax rate. So this is 0.2 is the tax rate. So simply put, you are being charged 5%, but you're going to save 20% on the amount that you spend on interest, which is $50. So simply put, your rate, it's going to be your tax rate times 1 minus the tax rate, which is 0.8. Your net cost for the debt is 0.4, or 0.04, not 0.4, 0.04, or 4%. So the net cost is only 4%. Simply put, to go from the interest cost to the net cost, you'll take the interest cost, which is 5%, you multiply it by 1 minus the tax rate, whatever that tax rate could be 0.4, could be 0.3, could be 25, it doesn't matter, 1 minus the tax rate, you'll get the net cost. So we have to do this for the notes. We also have to do this for the bonds, because at bonds, we have to pay interest on the bonds. Same concept. The weight of the bond is 28.5%. We multiply this by 6% times 1 minus the tax rate. Again, the bonds, we have to pay interest on the bond, which is basically taking 6% multiplied by 0.8, which is the net cost is 0.48. So although we're paying 6%, with the tax savings, we end up paying 4.8%. Now for the stocks, you don't get a tax deduction. You have 50% coming from the stocks, multiplied by 12%. Notice you don't have any tax deduction, because when you pay dividend, you don't get a tax deduction. Dividend is not an expense, therefore, it's 0.06. Now you add up all of them, you add up this, this, and this. So your weighted average cost of capital is 8.16. So this way, managers don't receive a required rate of return that's arbitrary. We use the WAC, and the WAC is based on our actual financing, which is 8.16. The best way to illustrate this is to work a quick example. But again, just don't worry about the WAC that much. Just know what it is, how it's computed. But in a managerial accounting course or a cost accounting, you don't have to do it. Let's take a look at this example. We have universal electronics, which started operation a year ago, has two divisions, a consumer division, and a commercial division. Both divisions are heavily invested in research and development, which is assumed to generate benefit for five years. R&D spending is made uniformly throughout the year. It means, let's assume they spend, for example, $1,000. It means divide that by 12, and they spend one 12 of it every month. Universal electronics has a cost of capital of 11%. That's the cost of capital selected, which is cost of capital is the same thing as WAC. Simply here, cost of capital. It's already computed for you. Selected financial statements are as follows. Compute EVA or Compute Economic Value added for this company. Now again, what do we have to do? Well, let's start with the formula. What's the formula? Well, we have to take adjusted income, which is we don't know what adjusted income. We have divisional income. We're going to take adjusted income divided by adjusted investment. So simply put, we're going to look at adjusted income and we're going to divide by, let's put adjusted investment here. Adjusted assets or adjusted investments, which is the assets. We're going to take those two numbers, divide them by each other, and that's going to give us, once you divide them, that's going to give us economic value added. Now we have to compute adjusted income for the consumer division. Well, we are starting with, they're telling us, our income is $3,850. Remember, this is accounting income. This is accounting income. What do we have to do? Well, simply put, to get to this $3,850, to get to this $3,850, at some point, we deducted $1,000 in R&D. Notice there's $1,000 of R&D research and development. So we deducted $1,000 in R&D to get to this divisional income, to get to this divisional income. So what do we have to do? Now that $1,000 in R&D, we have to add it back because under EVA, we don't expense R&D. We're going to add it back to assets, make it as an asset, and we're going to expense it over the life of the project. So simply put, so we're going to start $3,850, and we're going to add to it $1,000, that's fine. Then guess what? Then we have to deduct the depreciation, the amortization for this R&D because remember, R&D get amortized, just like depreciation, it gets depreciated. Now you might say, okay, then I'll have to deduct $200 because over five years. They're telling us here that they spend the money uniformly throughout the year. It does not mean that they spend $1,000 right from the get-go, they spend it evenly. It means on average, they had a $500 expense in R&D on average. Therefore, you will take $500 divided by five and for the first year, you will deduct $100 for the R&D. Therefore, all in all, the adjusted income for the consumer division is $4,750. So notice we added back the full R&D, then we deducted $100. Simply put, we added back 90% of the R&D. Now for the adjusted investments, we are starting with how much? We are starting with $27,500. Remember, we have to deduct current liabilities. We have to deduct this $1,000 current liabilities gets deducted. Then remember, since we did not expense $900, remember, initially we expensed $1,000, then we took this $1,000, turned it back into a non-expense, then deducted $100 of it into an expense. Now the difference here, this $900 has to go somewhere. This is no longer an expense. If it's no longer an expense, it's added to our asset because now this R&D is capitalized. Now I have my adjusted capital, which is if we do the computation, it's $27,400. Now we can compute economic value added. How do we compute economic value added? Well, we look at our adjusted income, which is $4,750, and we're going to subtract from it 27,400 times, which is 11%. Our WAC is 11%. When we take the difference between those two, we're going to come up to 1,736. This is the economic value added. It's adjusted income minus the adjusted asset or the adjusted invested asset multiplied by the WAC. We can do the same thing for the commercial division. First, we start with the divisional income, which is $3,880. Same concept, we're going to add simply put, we're going to add $1,000, then deduct $100, so simply put, we're going to add $900 here. Then with the divisional asset, we're going to start with this deduct $800, then add $900, because whatever we did not expense, this $900 goes into the asset, and we compute the, and if you want to verify this yourself, the answer should be 1,721.50, if you want to verify to do this computation yourself. So this is how we compute economic value added. If you have any questions or any comments, please let me know. Again, at the end of this recording, I'm going to ask you to like this recording, share it if you're studying for the CPA exam. I strongly suggest you check out my website. The CPA exam is a 30 to 40 year investment in your career. Don't take it lightly, put the exam behind you, study hard, stay safe, and good luck.


It's good to see you all and thanks for coming. You're going to be talking about composer, which is our Sort of new image build tool kit thing Yes, building OS images for any platform. I'm Will Woods you may know me from my various cussing about packaging formats and sneaking hot dogs into the operating system and Jen Jen Giordino senior interaction designer on the user experience design team and I work on composer So here we have Terry He is a system cloud administrator, and he needs to quickly create customized OS images or Different types of deployments and we have composer which lets you build custom images for any platform This is our sort of architecture overview. What what is composer? Well, yeah, it's a thing that lets you build stuff you take content from various places from red hat or fedora or wherever your own things third parties and run it through the Magic Composer box and Outcomes the things that you would want to install or Run in various platforms hooray And yeah, it's not like we wrote all new stuff to do this as much as I may have wanted to It's using all of the tools that you know and love Anaconda and yum and DNF behind the scenes that we've just Given you new ways to use these things made a lot easier what it doesn't do The main thing that we want to do here is make it easy to make ready to ready to run ready to deploy images The parts where you sort of need to you know do a lot of customization once the image is built We're not doing all of that. We aren't going to do everything for you Not because we don't love you we do love you It's just that there are certain things you can't do if you want to have a mutable image that you're going to deploy in a thousand places We don't have a way of doing 1,000 configurations. We can't do we can't predict everything you want to do So we're going to give you the common tools to do the things that you will need to do and there's lots of great configuration tools to Set up your system once it's running, but Composer is concerned with getting the thing that you're going to run once It's running. That's good for other tools Not for us So, yeah, so we're so here Jen's gonna walk you through what it is and how it works So Composer is a plug-in inside of cockpit. Not sure if you guys are familiar with cockpit It's a web console that lets you administer your system so when you see Composer inside of cockpit, it's labeled as image builder and The main page of image builder Composer is a list of blueprints that are represent the different images you maintain Here we're going to go to This HTTP server blueprints where you can see these are the contents that I've already added to this blueprint And I want to make some changes to the blueprint One of the things I want to do is get rid of PHP. So I'm gonna go ahead and remove That one we're making some very smart moves for for for Terry It's a demo Terry has decided that he does not want to use PHP anymore. Good job Terry Yes There's there's gonna add no JS to his blueprint So I filtered it. I found things related to no JS here. I've added it to my blueprint I can see no JS here, but there's also a tab of dependencies So just to see if no JS also brings in npm I can filter by npm and I see that it is in fact in my blueprint pulled in automatically as a dependency Terry is much relieved to know that he has npm now. So That's it for the changes I'm gonna make to my blueprint. I can see the changes that I've made the ones Listed down here. So I added our sync earlier, but I never saved that that was part of the previous session These are the changes that you saw me make now. I'm gonna go ahead and commit all of them If I want it, I could roll back some of those changes and undo them But I'm gonna go ahead and commit the ones that I just created And if the idea of committing changes sounds familiar to me to you, yes This is behind the scenes keeping the blueprints in a little git repository So this blueprint now is something that I'm ready to To start using I click create image and Here you can see a variety of choices available to you for creating an image And yeah, we have all the you know all your favorites of all of the image types that you might want to build Two different flavors of Q cow to you know tar archives If you just like want to I don't know cram that into some dockery sort of thing We can probably add more but these are the most common things out in the world, so And if you're looking at that and being like oh, but my favorite isn't in there, please do come talk to us about it So yeah, Terry Terry loves Q cow to so he's gonna create a Q cow to When you create images you would then go back to this this sort of overview page for your blueprint Where you can see all of your components as well as the the images that you've created So this is the one that I just selected It's it's kicked off that process and then this is one that I had previously created the VMDK so We're kind of doing it like a cooking show and sort of pulling the Pulling it out of the oven to show you and it works but while it's still baking the network being what it is Right now we're not 100% certain that it'll be able to fetch stuff in time for you to see what's going on Yes, we will yeah There are ways to specify that we'll show some details of the blueprints in a little bit I don't think we have stuff for that in the UI yet, but I think we're actively working on it But I I do have some activities at the UXC booth I'll be here tomorrow and Sunday and if you have feedback and would love to come and take a look I would love for you to come and take a look and just walk through some of the some of those activities and provide feedback Yeah, the UX team is actively trying to design a really good interface for how you Find those things and make those sorts of changes. So please do come talk to them Okay, so yeah, just sort of prove the point we're going to you know, take the image that we built earlier and downloaded earlier and Virtual box is very clever and if you type Lynn it it says oh you're doing Linux And if you type machine it sees the MAC and thinks you're running a Mac Good job virtual box But yeah, so, you know, it's I forgot to show you Yeah, so I had already downloaded this one that I created earlier. Sorry. I have that file Available and then when I'm creating this VM You can see it's here and I can select that creating that VM Name it something other than linear Yeah, linear to the re-linning linear harder I'll go with linear to yeah So yeah, here we go It's gonna boot and you all know what a boot sequence looks like it's not super exciting We can if you want to switch over to the console for a second We might be able to do we want to risk? So there is a full CLI to control this as well, which we would love to demonstrate But unfortunately the network being what it is sometimes the CLI hangs, but we'll show you Some of that in a little bit. So yeah, there we go. This is the image that we built It works and you boot straight into it And I don't think this one actually has npm in it sadly because we can't get it because the network here is being very strange So are we are we gonna try it? All right. Well, yeah, let's let's do that help one first Yeah So we've got we'll just bring up the help screen just to let you know like it's got a bunch of you it's your usual sort of Thing and verb type commands to tell it what sort of stuff you want to do And there's nice tab completion. So if you're not sure what the name of the blueprint or The compose you you IDs are very long. So it'll help you out And we'll see if we can get status can hooray So it's still running the build for open stack, but it shows you all of the builds that you are have Either finished or failed or running or pending Yeah, and there's we other commands, but you don't really want to watch us type. That's not great So just I'm gonna go back and do a reminder some of you weren't in the room when the screen was showing We do have a few questions. We wanted to get some feedback from you guys on If you could if you haven't already pulled up the survey if you could pull it up and just few questions answer those and then in a few minutes we'll Pull up those results at the very least we're pretty sure that T money Terry our boy We'll answer these questions. So if nobody else answers, we're just gonna talk about what Terry wants to do and I love Terry But not that much. So yeah in order to make the image When we build an image out of these things normally when you make an image run through the installer you have to create your user account set the root password things like that So we did that through the console when we were building this thing earlier So, you know, this is just we can list the blueprints that are on the server Save a copy of the example HTTP server which we showed you and so you want to go to the next one So yeah, here's what the blueprint looks like it's not unexpected and you can set the exact version numbers And we've got we've got modules. We've got packages. You can list what you need in there And so it's got a list of the things that we added in the UI Not all of the dependencies, but that comes later And so in order to you know, we can add a we added a root user or at a study password and a key for for Terry T money And just put his key in there so that T money can get into his systems So we've got the root one. We've got a user so that you've got a regular user on the system And you know, these are the sorts of things you expect. These are the only there will be UI for this soon There isn't right now We're trying to figure out what sorts of customizations are the most important and those were the most obvious ones so we started there and So really it's just a matter of taking those little snippets adding them to the to the blueprint and then pushing the blueprint back into the server and Running that command and that was how we built the thing that we just built or just booted like that's all it took so yeah There are like I was saying there are other ways you would you might want to configure your systems other than installing rpms creating users and Giving them keys and things like that. There's all sorts of great tools There's a kickstart gives you a lot of options for you know turning surfaces on and off and and doing all sorts of things Ansible is magic and once you do pretty much anything and then the a lot of environments use things like cloud in it or Ignition or what have you to when the image boots up figure out where it is and configure itself accordingly We do not have we don't have there's some of these things that we can't necessarily do we want you use We want you to use those tools to do that stuff Composer isn't going to handle everything that these things do because those are great tools and we don't want to reinvent them We wanted to give you the parts where you get to build the image and then use the existing tools to do what you need to do So we want to know what sorts of things you're doing with the systems once you you know other than put a bunch of rpms together Add a user and go to town Because we don't know what everybody does with their systems and we need to hear from you That's why do you have the survey and that's what we're asking So so do we have results? I don't know Sarah in the room Sarah. Yay. So should I Just reload it. Oh Yeah, by the way, this is in fedora or it's in a copper in fedora 29 you can install it and play with it right now It's also in roll Numbers am I allowed to talk about real numbers? It is okay, there's a number after seven we're allowed to talk about that again But yes, I'm told that this is available for for rel and it's in fedora So Does the number two mean two people? Okay, so we had what like Seven people answer the survey which is which was nice of those seven people. Thank you Um So So it's hard to compare other to Ansible, but two people chose Ansible over other I mean the other ones not other Does anyone Want to talk about Ansible? Are there things that we were missing that you're like, oh, I can't believe you forgot about my favorite tool slash image slash Whatever anybody want to talk about their stuff or no chef chef I don't know anything about chef What you use you use chef in to make images that's a thing it does me We will do some research on that Yeah, so it's if you're if you're creating an image sort of while you're creating the image You do some some chef-y stuff in the image and then you're done with it, right? So, yeah, um, we're we're trying to work on sort of a mental model of like you make an image and the images is Not mutable while it's being built Like an image you you say what you want to what kind of an image you want and the image appears The idea that like while it's being built you can kind of stick your hand in the machine and tweak some things We would like it a lot better if you did that afterward There's some interesting technical reasons for that if you want to come talk to me about them I will talk your ear off You probably don't want to hear about it, but there's some very good reasons why that's a really good way to build images Everyone loves Kickstarter. Hooray. I love Kickstarter to as Can we get a raise of hands like just from the whole audience of like is kickstart your first preferred preferred tooling? Could you raise your hand? Yeah Okay. All right Good to know And then second preference would be Ansible right Where the Ansible people in the audience? Yeah, I love the Ansible show me. Okay, cool Thank you for showing love to the red hat native products. We love you. Go back. All right Cloud in it a little love for cloud in it. I'm not gonna. I'm not gonna read me All right. So yeah, like I said, you can play with this now So yeah, I guess One of the things that we're going to start looking at because we're part of this was figuring out Okay, we can build images then what and so if I'm understanding what we're getting from the survey in Europe Raising your hand. We should start looking at the things that are in kickstart files. The directives that are in there Is it all right? Everybody who loves kickstarts. Are you thinking about the like commands that are in kickstarts or the post scripts? If you're like raise your hand if you're like, I need my post scripts or else this doesn't work for me Okay But and then everybody else is so pretty happy with the way that you can configure the images with the stuff That's just the commands kickstart provides. Yeah Can I weave it me? If you if you look all right cool, everybody lives kickstart everything is fine. Nothing is ruined. I told you guys This is yet. So composers is pretty new or it's not pretty new It's it's a it's a new way of looking at the old tools that we had and we're trying to really do The best we can to design something that really like works for you and make your life makes your lives easier And better in whatever small way we can so getting this sort of information from you isn't just like Thanks for telling us we're great. It's we want to make this good for y'all. So that's why we're asking these weird questions So thanks for indulging us so, yeah If you want to come talk more about it the code is the code for The cockpit plug-in and the back end the it's part of Lorax and welder web That's email and if you want to come on contact me directly Yeah, and then a uxd booth is has been in that far the end of the hall that way So you can come find me or Sarah who's also in the audience And we would love to get your feedback on different aspects of this tool So please come see us this afternoon or tomorrow or Sunday. We'll be much appreciated. Thank you. Thanks very much Do you have any questions? Yeah, did anyone have a question or things they wanted to? Tell us we forgot about Josh two questions. All right I Well, so the question was when we're talking about os images Are we talking specifically about virtualization images or also containers and one of the output formats is tar Which was our sort of easiest way of being like you could cram this into docker if you wanted to we weren't focused on creating container images at In our first sort of evolution of this we wanted to start with the things that we knew at the time But yeah, that's that's a a thing that we are thinking about but not our main goal as I understand it right now and second question that's So the question was about whether when you we want the images to be immutable And if you build it one day and then build it again six months later Are you gonna get the same content or are you gonna get different content the intent the way that we have structured the The blueprint file I it's supposed to be the case that you'll get the same thing if you build it again two months later Assuming that the content is still there Which is of course kind of tricky because if you're building against fedora you might have had an update that's no longer there and that's Part of a larger problem with this sort of ecosystem that we really all need to have a long conversation about but the intent is The blueprint once created is is like a static manifest of here's what I wanted in this image don't change it unless I say so That's why we're so careful about Reviewing and committing changes. We want it to be very carefully changed. Does that answer the question? Okay, well, or do you like do you have a preference in that workflow? Would you want it to remain the same or do you want it to automatically update as your contents? Get updated. Yeah, what's it is the expectation if you if you built an image today And then you tried to build it again six months later Would you expect that it would be built with updates or would you expect it would build the same thing? That's the intent is as you described that we would we'd like it to be that it's Reliable that what we built is what you built is specifically going to be the same thing if you built it again You know in a different form six months later that will freeze the content and build it again And it doesn't change unless you want it to change which is sort of a shift in thinking away from the way that the ecosystem works right now and so It's a challenge. Yeah, do you have to have cockpit running? No You can just run the the cockpit or the the composer's server and use the CLI Yep, yes Okay, yeah, the comment was a lot of sense. Yeah, the comment was for the for the microphone the comment was that He would expect that and I'm hoping I understand you so you'd expect that the There'd be a checkbox or something that would let you know that either you can say I would like this to update as time goes on or I would like this to stay at exactly the version I chose and both you need or want both of those options to be available to you in some form So you would want to know specifically When you've created images what version of the package was in each image you created. Thank you. That makes sense. Thanks Yeah, we have time for one last question if there are if there is one last question T money got any burning questions. Oh Okay, I'm gonna answer those backwards the second question was is there any plan to have it be able to upload the images to you know Wherever you need it to go We're trying at this point That's out of scope for us because there are so many places to put the images So we're trying not to get ahead of ourselves and do that And there are other tools to do things and the first question was Rel entitlement things like that. How do you get that sort of stuff? And this just okay, there we go and I'm gonna defer to somebody else on that one because I I do not Thank you


Hello. Thank you for being here. My name is Hugo. I will be talking a little bit about hardware virtualization and what changed in the last decade. I'm a systems engineer at a small cloud provider called Digital Ocean. Sorry, had to put this somewhere. So why do we virtualize hardware? Apart from the right answers that the CTOs, MCOs like server consolidation, faster provisioning, and faster recovery. From the geeky side, some operational tasks became much easier. We can live migrate virtual servers between servers. We can have virtually zero downtime maintenance windows. Virtual machines are really nice environments. At least rebooting a VM is much faster than putting a normal computer. So I will be talking a little bit about why hardware virtualization is useful, because it's not exactly required. Well, nowadays it actually is. So the easier way to virtualize is just emulate everything, literally everything. We have instructions. We do instruction by instruction interpretation. All the hardware state is emulating software. Like RAM is just a block of allocated memory. Registers are just variables and so on and so on. This is extremely simple. It could be easy enough to be a university segment if you are not implementing a system instruction set at least. But it's really slow. Nevertheless, it's very useful for development. The most famous emulator is probably a box that started in 94 and the last commit was one day ago. I believe people are still using it. So instruction by instruction emulation is actually not feasible in the production environment because we expect the downspeed to be not that significant. So there are faster ways to virtualize even without hardware support. But first let's make a little detour. Who here heard about the term virtual machine monitor? Interesting. Any idea in which decade that term was coined? So in the 70s, actually in 74, Popek and Goldberg wrote a paper with the title formal requirements for virtualizable third-generation architectures. The paper abstract mentioned things like PDP-10 and IBM 360. Popek and Goldberg in this paper established the base requirements to consider a virtual machine monitor. So a fidelity is just that the behavior from the guest's perspective should be similar to the host's perspective. And the guest is not supposed to understand or perceive in any way that it's a guest that is a virtualized thing. A performance is a little bit subjective here, but in the paper it was very obvious that it meant that emulation or plain emulation was not an option. So the visualization overhead was supposed to be close to neglectable. And safety is obvious. The guest VMs must coexist between each other and should not interfere with the virtual machine monitor and with the resources that they don't have access to or that they are not supposed to have access to. So these are the requirements. Popek and Goldberg also in the same paper came up with a couple of theorems. We are going to put our focus in the first theorem. And it is. For any conventional third-generation computer, a virtual machine monitor may be constructed if the set of sensitive instructions for that computer is a subset of the set of privileged instructions. So my question about this was what is a third-generation computer? Since this paper was written in the 70s, well, different expectations. But this is also my very explicit unit in the paper. It should have some sort of relocation mechanism, which makes sense because similar VMs are supposed to share the same space. The instruction set is expected to have different privileged levels. So a supervisor and a user mode. And a trap mechanism or set of trap mechanisms are also required. Now, what's the meaning of sensitive instructions and privileged instructions? So privileged instructions are those that trap if the processor is in user mode and do not trap in system mode or in supervisor mode. And sensitive instructions when trapped must pass the control to the virtual machine monitor. And now the suggestion or the proposed way of virtualizing virtual machines is nowadays called classic virtualization. And the concept is very, very simple. We are supposed to directly execute the safe instructions and by safe we mean that they don't interfere with the virtual machine monitor or any other VMs. And we are expected to trap and emulate the privileged instructions. Now, how does this apply to hardware? Curiosity. Is any of you going to Prague next week? Okay, this might be safe then. Will you be attending Embedded Linux Conf? Okay, so about hardware. Arm exists, but we'll be ignoring it for today. And this is going to be very specific to Intel. I'm not going to mention AMD. They have very similar visualization capabilities, even if they are incompatible at the instruction set level. So, how this classical virtualization could work on x86? So x86 already has four privilege levels, which is very useful. Those privilege levels go from ring zero to ring three. Ring zero is the actual privilege levels and rings one to three are not privileged. This means that if we try to execute privileged instruction on rings one to three, it will trap and the virtual machine monitor will regain control. And when that happens, it is supposed to emulate the instruction that actually caused the trap and give control back to the visualized OS. So from the privileged level's perspective or rings, the virtual machine monitor and possibly the operating system kernel runs on ring zero. So in real privilege mode, the user run runs on ring three and visualize OS could run on ring one. Probably that virtualize OS that we don't know which OS could be, who use ring three as well to run is their land code. I should mention that in terms of data access, ring zero has access to everything. Ring ring one has access to or can see and access the data in the rings to entry and so on. So let's pick a random x86 instruction. Okay, it's not really random. A popflex. Popflex is a very interesting instruction because when we run it in privileged mode, it changes the ALU and the system flags. And when we run it in non-privileged mode, only the ALU is changed. So its behavior depends on the current privilege level, which makes it challenging because there is no way for the virtual machine monitor to intercept its execution. And the ideal scenario would be the execution would be intercepted by the VMM to check the guest's current privilege level and it would either emulate it in privileged mode or non-privileged mode from the guest perspective. But since this instruction doesn't trap, that is not possible. x86 has in total 17 non-privileged sensitive instructions, which means they don't actually trap and we would expect it to, at least, for a classical virtualization to work. And additionally, we can easily or the guest operating system can easily know if it is being virtualized or not because the privilege level is stored in the lower bits of the CS register. So this is bad news because this means that x86 can't be classically virtualized without hardware support. However, we have been using fast emulators way before having hardware virtualization available. And this has been done by doing binary translation. The idea is extremely simple. The implementation is actually not that simple, but the idea is there is a mechanism inside the VMM that dynamically translates the sensitive instructions. So they cause a trap and the virtual machine monitor instead of running those instructions directly emulates their behavior and mimics the side effects of that execution to the guest. As an optimization and a required optimization, the translated blocks have to be cached, which sounds simple but is actually not simple when we consider corner cases like self-modifying code. And we need a few things like shadow page tables. I'm going to talk a little bit about this in a few minutes. And all the IO is emulated as well. So it's not trivial, but it was a fast solution for some years. I guess the first actual working virtual machine monitor using binary translation that was really fast was VMware Workstation that was released in 1999 or 2000. So eventually, a few years later, 2005 or 2006, Intel started having support for hardware virtualization. And what they did was adding a new mode of execution that is called by the root mode. And the virtual machine monitor would run running root mode and the guests would run in non-root mode. The guests would be totally unaware about their execution mode. So Intel VTX adds a new set of instructions. And the guests wouldn't be able to run any of those instructions without trapping back into the VMM except one actually. But not important for now. So yeah, the guests are totally unaware about what's going on. They just run their code and they don't need to do anything else. Now, how VTX actually works. So each guest has its own control structure that has all the state and a little bit more. The transitions between root and non-root mode are atomic. The virtual machine monitor has a very simple job. It creates a VM control structure. It's not a trivial structure, but it feels things like the initial guest state, how the registers look like. It has to provide some memory space context. Then it sets a program counter and it just launches the VM. And when it launches the VM, the VM or the processor transits to non-root mode. And it stays in non-root mode running the guest's code until a VM exit happens. Now, forgot to mention, back here, the VM CS also specifies in which conditions a VM exit should happen. And this makes things very, very interesting. We can easily fine-tune the guest to exit only in very specific conditions. And I'm going to talk a little bit about what are the typical exit reasons. So we can have multiple VM CSs, but in a single point in time, there is only one active VM CS. So a single car, and I'm talking about cars and not processors because each car can have its own active VM CS. In a single point in time, the car is either in root mode or in non-root mode. If it's in non-root mode, it's running a guest. And once it VM exits back to root mode, the VMM might decide to schedule another different virtual machine to that same car. And it just appoints the VM CS pointer to another VM CS structure and starts that virtual machine or resumes that virtual machine. In this graph, I'm using VM entry as a generalization of a VM resume or a VM start, actually, it's VM launch. So we have an easy way to run guest code safely and this can be considered classic virtualization. Well, kind of. So, we can easily emulate CPU. Now, we need to talk about the MMU. In the initial reasons, in the initial releases of VTX or the initial one, the first one in 2006, the MMU could not be virtualized. And that was bad because there has to be something translating or managing the page tables. So, the page tables are simply the mapping from virtual memory to physical memory. But since we have a virtual machine inside something that is real, we need two layers of translation. So, from the virtual memory to the virtual machine physical memory, but that physical memory seen by the virtual machine is actually virtual memory from the VMM's perspective. Then there is also the translation from the host level or the VMM level from that virtual memory to actual physical memory. And the solution for that was shadow page tables. And this has lots of performance implications. So, shadow page tables consist on keeping the mapping or in an optimal way the guest operating system would be managing the page tables and everything would work out of the box. But since there is no MMU virtualization, the VMM has to take the mappings provided from the guest operating system and map those mappings to actual physical memory and use that as appointing the VM's page table registry to that shadow page tables. This is going to make more sense in a second. So, this mapping has to be kept in sync. So, every time that the page tables change on the guest, the VMM has to update them, has to update the shadow page tables. This means that every time the page tables register changes on the guest, it causes a VM exit. And it gets worse than this. When a new memory page is added to the page tables, the VMM has to keep track of changes to that page table. This means that every time that we or the guest map something that changes in the specific page table, it also causes a VM exit. And this is lots of VM exits. And I guess I should mention that every time that there is a context switch in the guest operating system, it causes the page tables register changes. Here I wrote CR3. I don't know why. And yeah, this is lots of VM exits. And in the earlier versions of VDX, VM exit, VM resume would take around 4,000 cycles, CPU cycles. In theory, we could measure VM exit, VM resume in microseconds, which is pretty uncool. So, eventually, MMU virtualization arrived. And Intel called that extended page tables. Some, the formal name, fancy name, second level address translation. Some people also called them nested page tables. So, they were introduced in 2008. So, a couple years after VDX first introduction. And it makes all the work for us. When TLB miss happens, it walks the guest page table entries and the host page table entries for us. And that's all we wanted, right? And obviously, that doesn't require as many VM exits as before. So, the guest manages its own page tables and that doesn't cause a VM exit. And the performance gains when compared to shadow page tables were very obvious. So, we are in 2008. The situation report. We have a really nice CPU virtualization. The MMU is guest friendly. So, everything is awesome. I still find this music extremely catchy. A sort of. So, there are multiple situations that can cause a VM exit. The typical reasons are exceptions, the CPU exceptions, external interrupts, the execution of root sensitive instructions, VTX instructions, IO instructions, lots of things. The VMM can avoid some of the exits because it can literally cherry pick plenty of conditions that trigger a VM exit. But some of them, it can't be ignored. And usually, when a VM exit happens, the virtual machine monitor looks into the virtual machine control structure. It has a field exit reason. That exit reason is like an exit status code. And the virtual machine monitor knows what triggered the exception. But usually, that is not enough. That instruction has to be emulated and the guest site has to be updated somehow or something has to happen. So, this means that to actually handle VM exits properly, we need to have X86 emulator in our VMM, which are not very trivial. A curiosity, any of you compiled X86 emulator in the last month? Interesting. Any of you compiled kernel in the last month? Okay. Any of you compiled an X86 without knowing it in the last month? I guess you did. So, the KVM code that is in the kernel, yeah, I can talk a little bit about KVM. The KVM code that we have in the kernel actually has a minimal emulator that handles VM exits successfully. The KVM module does most of the work for us in terms of keeping track of virtual machine state. There are different implementations. So, the Intel VTX has been improved over the years. Then there is this incompatible AMD implementation and the KVM module handles all that for us. And it's really simple to use. We just need to... There is a device file, the FKVM, and we can play with it using IO CTLs. And that's what QMU uses. So, now let's talk a little bit about IO. All the devices exposed to the guest are emulated. Since one of the requirements is that the guest should be able to be a complete and modified system, we need to provide some device that the guest knows how to deal with. Usually, this means providing or emulating very old devices like Intel E1000 or RTL8139 or NE2000, because pretty much every operating system has built-in drivers for those devices. The way IO works is actually very simple. When the guest does any IO operation, and it can be PIO or MMIO, the VMM gains control emulates wherever it's expected to happen from that emulated device and gives control back to the guest. This means that sometimes a single IO operation might require multiple VM exits, mostly because we are emulating devices that were not thought to be used in a visualization environment. So, high throughput is impossible in this scenario. This didn't use to be a big deal until a couple of years ago with the whole cloud boom. Mostly because you don't want to, even if you are a cloud provider, you don't want to have a virtual machine spending 30% of its time in a cycle VM exit, VM resume, just because the user inside that guest is downloading filet, five megs per second. Yes, it's that bad. So, a decade ago, I guess it was actually a couple of years ago, a smart guy called Russell suggested something called virtual IO, that is a per virtualized IO. I remember I mentioned that we didn't want to change our guests, but this happened for a good reason. So, instead of emulating a full device, virtual IO just suggested that a very simple PCI device was enough, and that would be okay for all or most of the device classes that we could have some interest in having access from the guest. The way it works is very simple. So, there is a PCI device, the guest knows how to deal with it, and it exposes just one or n ring buffers, and those ring buffers are shared with the VMM and are used as communication channel between the guest and the host. The VMM or the backend side of that device provides the actual IO operation. Virtual IO became supported by multiple hypervisors, and I guess any major operating system nowadays has virtual IO drivers at least for network cards and probably something else, but I like network cards. And this improved things significantly, still not as, performance-wise, still not as good as native hardware, but was much better than having an emulated device. I guess one could easily reach like a speedup of 20x network-wise, which was a lot. Eventually, hardware, IO virtualization became a requirement, and I don't have slides about this, so I'm going to do some talking. And the basic functionality just allows the VMM to safely assign or dedicate a device to a virtual machine. That by itself is not very useful, because okay, it's useful if you want to play Quake in your VM, in your desktop, using your graphics card, but in a cloud environment, usually the number of VMs scale much better than the number of devices that you have to actually assign. I guess since the first implementation of release of native hardware, IO virtualization, things were really already optimized, and we could get to a state where there were virtually no VM exits triggered by IO. There are a few tricks to make that happen and a few exemptions, but it was already technically possible. So we could get to, for example, close to line speed network-wise, and a new family of virtualized devices started appearing since then. But this is not really that interesting in the whole cloud thingy today. So the PCIeC came with a really nice thing called a single-root IO visualization. Thank you. And it allows us to do things like safely assign a NIC to multiple VMs. And I know that this is going to sound very weird, say, like this, but some specific NICs or any NIC that one can buy for a server nowadays supports SRIOV. And it allows us to split that NIC into multiple virtual functions. So this means that the NIC has the physical function that we expect a network card to have, but we can have secondary virtual functions that can also function like network devices, but have some limitations. And those limitations exist to guarantee safety. And we can get NICs that support until, like, 256 virtual functions. And we can assign a single NIC to a virtual machine. And those virtual machines have access to real hardware. And that's pretty cool. I guess my time is pretty much over. And so virtualization is pretty cool. And that's all. Questions? No questions? In the case of these virtualization aware network interfaces, would each VM be assigned a different, let's say, MAC address? That's a very good question. Okay. There are some options there. And there is also... I'm going to say yes, but the right answer is a little bit more complex than that. So you can just give direct access for a VM that you might or might not trust, give direct access to the wire to that VM. So most of the NIC brands, at least Solar Flare and Intel, support a mechanism to filter out and filter in the packets that pass through. So that's called queue splitting. And you are allowed to assign specific TX and RXQs to that PF. And so, yeah, you can do whatever you want at L2, but there is safety there. Okay, thanks. Oh, here. Is there other class of devices in addition to network cards which can be used that way? Not that I'm aware of, actually. So the entity that comes up with this is a PCI special interest group. And every time that I start reading their specs, I kind of fall asleep. And I mentioned network cards because that's something quite important for my company. And it's something that I deal with daily. And I guess it's one of... I guess doing the same with GPUs would be pretty cool as well. But with NICS, doable now. Where are most of the remaining performance limitations in virtualization? Or where is most of the work happening in terms of optimizing for performance? Right now, so with hardware IO virtualization, you can get very close to native performance. And at that point, it's mostly about the drawbacks. For example, by doing IO virtualization, you lose some things like live migration. And for some use cases, that's quite important. But in terms of speed, you can get very close to native. Thank you.


Hey guys, it's Nate, aka the Foot Accountant. Welcome back to the channel. It is Monday, time for our weekly market outlook video, where we take a look at the market for this next week of FIFA Ultimate Team, possibly to get you guys ready for any possible promotions, events, SBCs, and etc. They will be going on this week inside of FIFA 20. And so this week we do have the ultimate screen promotion that is running. So we need to talk about some of that stuff and what that's going to mean. But also this week we have some UCL games. So that means UCL content can be coming. And of course we have the normal weekly events of the icon swaps that people are continuing to grind for and stuff like that. But the main attraction this week is the ultimate screen promo with the first set of screen cards impacts in the game. Right now we have these 11 players impacts. These players are going to get impacts until Friday. These stats are not changing. These are the stats these players will have for the rest of the year. And we're going to get another 11 players this coming Friday that will be going in packs to complete out the full set of the screen team for this year. Pretty solid player selection. I really haven't expressed my opinion on these guys yet since Friday. But I think these are really cool cards. Ibra is going to be very fun to use for those MLS fans. The Ibra fans from years past. Hamas Rodriguez with a massive pace boost. I love that they did that to this card. Molar is cool. Aguero is honestly a team of the season Esk card with the pace the shooting dribbling. That's a very very high level card. Bernard is a really fun option in Brazilian left wing in the Prem. Great statistics. And he's kind of a budget option. It's a special card at left mid left wing. Fun card to use. Ro Magnolia is looking like an insane center back for the Serie A. Dele Alli is a great center mid. Guerrero is a little bit okay. One of the cheapest ones. Sama Sabitzer. Carvalho looks decent. And then Odomani is a nice card at center back as well. So a nice team that is still in packs this week. And continuing the content for this week what I think we're going to see. I think we're going to continue to see more SBCs like we have seen already this week. We're getting these last two days of the promo. We've gotten like two SBCs each day. We have six SBCs in here right now. I finished two of them today. Today we got the Flying Dutchman and the Tomb Raider. Tomb Raider. We have zombies and Dracula's army that were from Saturday. If they continue putting out two of these SBCs per day. That is a ton of packs being open for this promo. Which is honestly crazy. They keep putting out these SBCs. I wouldn't imagine that they do it every day this week. I think that the UCL stuff might hamper some of these SBCs coming out. More of these screen related SBCs. But I do expect to see more of these gold supply packs coming out of the game. Because that's what EA has loved doing. Like look at all these SBCs that they have put out during this promo. Like a lot eight screen SBCs. Since the start of the screen promo in three days we have gotten eight SBCs. Including two player SBCs. So I think we're going to see more of these SBCs in the week. But I think we're going to see some champions like stuff. Come on top of that. Some people were thinking we might get another player as an SBC. I don't really see that happening. We already have two players available through SBC. Milner and Hayesus Navas. And we have an objective player. So I don't know if we're going to get another screen card that would be available through SBCs. But I think that if we got any other card it would probably be like a flashback player or maybe another end of an era or something like that. Maybe even a champions league related SBC that would come out with a player on Tuesday or Wednesday. And that's a possibility for this week as well. Maybe another player SBC or two. I don't think we're doing any other player the months. We've gotten all those covered. We have a lot of those that are in the SBC section right now. But then just more screen packs that are becoming out probably. We're going to have promo packs in the store every day. They've been doing this every day so far. Putting promo packs in. And I would imagine maybe like a small objective or something related to the screen. But the bigger talk this week I think has to be about UCL. I think a lot of people are overlooking that Champions League is going to be happening this week in FIFA. Tuesday and Wednesday. There are Champions League games back on in the competition matchday three of six. That means UAFA Marquis matchups SBC is probably going to be coming out. And the biggest thing about this is are we going to finally figure out what those UCL cards are going to be like in this game? Are they going to be available in packs? Are they only going to be available through SBCs? What is that going to do to the market? I want to talk about that a little bit as well. But first the UAFA Marquis matchups for the Tuesday games. I think that Athletico Madrid and Biola Veracruzson would be an easy shoe-in. Last week or last time last matchday there were two teams included in the Marquis matchups for UCL. It was a Tuesday game and a Wednesday game. They've been doing that pretty consistently. The Tuesday game that has the biggest rivalry or the biggest game on Tuesday I think is this game with Madrid and Biola Veracruzson. Maybe pick up some of these guys on bid for cheap. Just stock your club. If they're under a thousand coins there's no harm. Try to get them on bid. Chuck them in your club. They might go up for the SBC or you have some in there just in case you want to do it yourself. And then for Wednesday it's a little more tough. I think Ajax and Chelsea would be a front runner for that SBC or Inter Milan and Dortmund. Those two matchups look to be the highest quality teams kind of playing each other. The biggest matchups for this week in Champions League. But again the biggest thing that we really want to know about is the Champions League cards because some of them are still on the market right now and EA promised us that we were going to be getting some more information on these cards as they do come out. Because before I mean they're on the game right now. It is a fact. You can find them. Let me go to Prem. Let me search Spurs special max by now of like 20 or 30k. We're going to have some other cards in here. Actually there was a few right there. Boom. This is perfect. So there are cards right now that are still on the market that people have packed when they were put into packs before like they shouldn't have been. But they're on the market. So it tells me that I think these cards are going to end up being on the market at some point in some way, shape or form. Whether it's going to be like last year. Whether they put them into SBC packs and that's the only way they're available on the market. Tratable. I think they're going to do that same thing this year. But since they got on the market somehow it was during once to watch early game. These people are actually packing these blue cards. It was really weird situation. So I hope we get some clarification on that. And if they do put these like in packs or even in SBC pack this is going to drop the gold market some on some of the high rated players that the players that I'm most worried about are some high rated players that are maintaining a high price. Like it got like Sadio Mane. Sadio Mane right here. Does he have any UCL cards on the game? Do I see any blues here? I'm looking through his inform. I don't see any blues on the market at this time. Maybe a guy like Salah. Does he have any blues? Some of these guys like Salah like Mane. If their blue cards come on in the game that could be a big impact. Maybe why Naldum as well. Maybe why Naldum. That could be a big impact on their gold card price because the supply is going to come on the market so quick and all at one time and it's going to drive that price down. Why Naldum might not have an impact on the price that much? His gold card is out of packs though. So you could see that drop right now. Why Naldum is at 60k.  And what is his gold card? Why Naldum's gold card is 2827k something like that. So there's a lot of room to drop there. But I would be most worried about the high rated cards. Even a guy like Mane or Sane. The blue cards might come on the game from an SBC pack so fast that it destroys the value of the gold card.  He's actually below. It's my man actually under 200k. He is close to 200k. Wow he's he's dripped down a lot probably because of the Bernard. But you could see his blue card come on the market and as people pack that card they're going to undercut, undercut, undercut and try to get their coins if an SBC comes out with those blue cards in the packs. So you might see this card's price drop a little bit if that undercutting. It all depends on the card but these high rated ones I think are at the most risk. Somebody like a blue version of Militao could be at risk as well. A low rated player that is higher priced. Do we have any special Militaos in the market? We do not. But Militao himself right now sells for like 12-13k. Just his normal gold card. 13k actually. But if you see the blue version get packed a bunch. It's gonna get packed a bunch from SBC's from a UCL SBC because it's 81 rated. These cards, the UCL cards have no upgrade over the base cards this year which I think is a little bit unfortunate. I know that some people like it because that player gets an informed and the UCL card isn't there to kind of mess up that gold card to inform progression. But I think that these gold cards having the same price it doesn't give them as much value. So they won't be as good to trade with and it could hurt the gold card's prices but which maybe that's what EA wants with these cards coming on the market. So watch those blue cards because if we get enough supply for them if EA does a couple packs in here that makes them tradable through SBC's or however they're gonna come on the market. That could bring some supply on the game and that would be another opportunity for gold cards to drop this week. I know they keep dropping these SBC's that supply gold and supply packs and that's why you see these cards dipping down so much. Let's go to footbin and find a player to look at this as an example. Like Usman D'embele. Very popular card. I just clicked on the wrong one. Former Spurs player. Usman D'embele though. Look at this price trap. 75,000 coins on Friday during the hype of the Weekend League. He gets packed a lot from all these SBC's that EA is putting out. Also the promo packs doesn't help that. Down to 55,000 coins. An 84 rated player. His blue card could come out. The price cap could be set at maybe like 120k but all those cards come out of the game at once. It's just like an SBC. All these cards are gonna get packed.  People selling the gold card because the gold card is higher than the blue card. If you see blue cards on popular players like this or meta players like a Van Dyke, this is a card that I would watch. Watch the blue version of Van Dyke because if it's under 600k that would be like a screaming buy because some people are gonna pack that and they're gonna list it up and this card is 664. The blue card could come out. The gold card price could drop yes because the blue one's out but the blue card being a lot lower than the gold. Since the blue cards at least last year, if they do it the same way as last year, they were only available through SBC packs. That means they have limited supply so once the pack comes in they kind of rise up as people go buy those cards. We'll just have to monitor that situation by what happens this week but that is gonna be a big thing we're gonna look for this week to kind of figure out and say hey are we actually getting some of these UCL cards this week through packs what's gonna happen and stuff like that. I want to switch back to this scream talk though. UCL is important. It is. It's very important but we do need to look at some of these scream cards because some of these cards are pretty low in my opinion. Hamas Rodriguez 380k. This is a card that's gonna be usable for a long time and foot. A lot of people want to know when to buy these cards. He has a two star week foot which kind of sucks but this one's actually usable. I mean this is a card that I think is gonna maintain its value for the rest of the year because of Real Madrid. It's Hamas Rodriguez. Very popular player and he got a massive pace upgrade so he's actually usable aside from the week foot. When is the best time to buy a lot of these cards? A lot of people want to know about Bernard as well. When is the best time to buy some of these cards? My opinion is wait until they're about to go out of packs. Thursday during week on the rewards could be a great time to pick up these cards especially Galli Bernard who's gonna get packed a lot with all the high level packs that come out with week on the rewards and division rivals rewards on Thursdays. You're probably gonna see a decent amount of supply of these cards on the market on Thursday. They go out of packs Friday so that's the one thing. I don't think they're gonna be included with the next set of scream cards. They won't put one team in packs for two weeks and then one team in packs for only one week. I think they'll do both for one week and we'll see what they do with other SBCs. A guaranteed screen player SBC. I don't see that coming this week just because only 11 cards are available right now in the game. A guaranteed screen player SBC pack is in the code from last year so what is possible and it comes out but that'll be something that would come out probably next week when they can have all 22 or 23 screen cards available in that SBC. That's where I would see that being the highest probability. No need to try to invest in that yet and even if they did try to invest in that I would just club stock 83s get a couple of disc card informs. That would be my opinion on how to invest for that but this week of FIFA should be a chill one. I mean we have a lot of content on tap. We've getting a lot of content in terms of SBC content during the screen promo which is awesome. It's great. It doesn't help the market but EA loves punishing the market this year by supplying cards, supplying cards and supplying more cards to packs. But we'll see what happens this week with Champions League, marking matchups, possibly UCL upgrades. That would hurt the market as well if people are able to turn in cards, do a two player pack upgrade SBC with UCLs and get the blue version instead of the gold. That would make some gold card prices drop as well so that's something to keep an eye out for. We don't have to worry about road to the final stuff just yet. Road to the finals came last year a week before Black Friday or a couple of weeks before Black Friday. So I don't think we have to worry about that stuff just yet. That should be about two or three weeks away for those road to the final cards in FIFA 20 for Champions League. But again this week more screen promo. I wouldn't expect any screen player SBCs. Maybe one more. That would be the most I would think of but two SBCs is already good I think. So we'll see what happens with that. Marking matchups, Champions League cards, possibly some Champions League drama going on with cards going back on the market. We'll kind of have to survey that situation and then of course we'll be looking at the normal weekend league buying and flipping times. Watch the ones to watch as well. You see me have uh I have a couple of brands here on my transfer list. I bought these at like 35k. That was a good one on bid. 39k. Watch some of these card prices because ones to watch kind of get swept slept on for midweek games. Brand is still pretty low from his game on Saturday. Julian Brandt still at around 40,000 coins. I think it's pretty cheap. That card fluctuates a lot and people are going to maybe think that he could get a team of the week from Champions League. So, if he scores a goal, has an assist, has a good game in Champions League games, those cards that are ones to watch as they're playing Champions League this week could be a little bit of a good uh investment opportunity if they play something to watch for just a little bit of a gamble and some of them are still kind of low right now coming out of the weekend where they played games and didn't have informed worthy performances. Speaking of informed worthy performances, I'm like trying to wind down the video and I keep thinking of things that I could say at the end to help you guys out. This needs to be said if you have a whistle vignette or ones to watch card, please sell that sucker before Wednesday. I don't think he's getting in. Well, to be fair, I think he does have a shot of getting a team of the week but his card has doubled in price up from like 110, 115 to 220 plus right now is about 220. Take the money on this card. It's an 83 added card. He's already up 100k. That's incredible profit, incredible return on investment. If he gets informed, yes, his price could go up but I think that when he gets announced in team of the week, you can see that price go down as people say, oh, he's in. His price is going to go up. That day, his price actually will go down. I would assume before it would go up. I don't think this card is actually worth 220k. I feel like his inform would maybe settle around 175, 180k, maybe just under 200 depending on the boost that they give the card. He should go to an 85 rated inform, maybe get to like 86 pace, 84, 85 shooting, 80 passing. It would be a decent upgrade. A lot of people would want to use it but I don't think it would be worth 220k especially considering how low the market is right now and his gold card you can go buy for like what, 20k? It's something crazy like that. So that's my thoughts for this week. If you have any questions, comments, put them down below in the comments. I'm very active down there. I like to respond to you guys and talk to you guys. And of course, like the video if you enjoyed it and subscribe to the channel if you are new. It's been Nate with Foot of Counting. Catch you guys later. Peace out.