It is now time for oral questions. I recognize the leader of His Majesty's loyal opposition. Thank you. Good morning, Speaker. This question is for the Premier, Speaker. Yesterday, the Premier tripled down, I guess, on his decision to interfere in our judicial appointments process. He described an epidemic of crime happening on his government's watch. His solution, appointing conservative insiders to the committee that appoints judges. So, Speaker, Ontarians don't want an American-style partisan judiciary. They do not want judges picked because they are, quote, like-minded with a government that is under criminal investigation by the RCMP. They just want a system that works. So, Speaker, to the Premier, will the Premier rescind these appointments and start reversing the damage that his neglect has had on access to justice in this province? To respond to the Premier. Mr. Speaker, I'm not going to double down. I'm not going to triple down. I'm going to quadruple down to make sure that we keep these violent criminals that they go to jail. Mr. Speaker, we have the greatest police officers anywhere in the world right here in the province. They arrest criminals for doing heinous crimes, and guess what happens? The judges let them out on bail to do more heinous crimes the next day. They're kicking indoors in the middle of the night, putting guns in people's heads, scaring their children, scaring the families, scaring neighborhoods. Where are the rights of the people of this province? Why are you always supporting the criminals? Mr. Speaker, let me give you, we know the level is an NDP. They want these criminals out. Let me give you some headlines. Court grants bail for alleged gunmen of five victims. Teacher charged with sex offenses, released on bail after weekend in jail. Woman charged with manslaughter, released on bail. Southern Ontario man charged with forcible confinement, drug trafficking, granted on bail. People breaking into homes. The member for Ottawa Centre will come to order. The Premier will come to order. Start the clock. Supplementary. Mr. Speaker, I've got a headline for them. How about RCMP investigates Ontario Conservative? The chair of the Judicial Appointments Committee is a registered lobbyist who lobbied the government as recently as last week. Among their clients, American gun manufacturers. Yesterday, the Attorney General seemed to say this was all business as usual. And I have to say, unfortunately, I don't disagree. Because under this government, business as usual means insiders, donors, people with access come first every single time. Order. Mr. Speaker, back to the Premier. Will he rescind these appointments now? Or do we have to wait another month for him to backpedal on this latest scandal? The Premier. Mr. Speaker, we have a duty to protect the people. We have a duty to protect the students here, where the people right in this legislature, you ask them, do they approve of letting these criminals out after committing heinous crimes, terrorizing neighborhoods, running around with guns like it's the Wild West? No. They don't support it. I'll guarantee you they don't support it.  How do you think that feels? Or the child that was so scared ran outside and jumped in the car when the criminals were taking it? But guess what, Mr. Speaker? The Liberals and their NDP, they're okay with these criminals. Let them out. Let's commit crimes. Let them keep going. You guys are so weak it makes me sick. The Premier will take his seat. The Premier will take his seat. Final supplementary. This Premier refuses, again, to take accountability and responsibility for anything. Our court system is collapsing and he's blaming the judges. The government spent an order to courthouse. This is going sideways fast. I would remind all members that the Speaker needs to hear the question. The Speaker needs to hear the response. Interjections are out of order and members should make their comments through the chair. And I had to interrupt the Leader of the Opposition. I apologize. Start the clock. Do the opposition as before. Thank you, Speaker. I'll start again. Our court system is collapsing and he is blaming judges. The government spent a billion dollars on a new Toronto courthouse only to have it dubbed a monument to failure. Courtrooms are forced to close every single day in this province because of understaffing. Their chronic underfunding means that people never get their day in court and it means that victims will continue to be forced to watch their assailants walk free under this government. So, Speaker, will the Premier finally take responsibility or will he continue to look for scapegoats for his own failures? Thank you, Mr. Speaker. I hear the public sometimes say politicians are all the same, but here is a stark contrast. If the Leader of the Opposition had clue one how the system worked, then she would understand that we don't cherry-pick judges. There's a committee that makes recommendations. There are judges that sit on the committee. You know what, Mr. Speaker? Never mind all that. They want to defund the police. They want to tie the hands of the judges with all sorts of crazy notions that their federal cousins are helping Justice General do what he's doing. They run the criminal code. You want to talk about tough-on crime, Mr. Speaker? Their federal cousins could be helping us, but they won't. They're moving the other direction. For another question, the next question is back to the Leader of the Opposition. Well, Speaker, thank you, Speaker. The scandals never end. Today we learned about yet another sole-source contract handed over to an international company by this government. PricewaterhouseCoopers received more than $26 million to develop software for a digital tribunal system without competing with any software companies, let alone Ontario software companies. It seems the government hasn't learned anything, or maybe simply doesn't care about fairness or transparency. So to the Premier, why was a multinational accounting firm with little to no experience with software development handed this contract without having to compete? Mr. Speaker, I thought she didn't know anything about the justice system. Now she doesn't know anything about the IT system, Mr. Speaker. The member doesn't know anything about the IT world, Mr. Speaker. Back in April of 2020, actually before that, I sat down with the NDP government in British Columbia because their court digital system is renowned, Mr. Speaker. And I sat down with Minister Ebi at the time, and he's now Premier Ebi, and said, I hear about this fantastic system, and he said, we would love to share it, Mr. Speaker. We would love to share it, and we will give it to you for nothing as long as you adapt it to your market and then share the enhancements, Mr. Speaker. I've talked about this in speeches. I've talked about this in the House, Mr. Speaker. But, you know, just like I said before, until somebody wrote about it in the paper, they're not paying attention. It's in the estimates.  I'm happy to explain more, but I'm glad they're now joining the discussion. A couple of messy questions. Very much, Speaker. This sole-source contract with PWC was originally signed for less than a million dollars. But now, just three years later, the contract has ballooned to over 26 million. This government has been unable to justify this massive increase, no competition, no transparency, again. Despite what the government members say, the Ministry and Tribunals staff say timelines and milestones are repeatedly delayed and the costs they just keep growing. So, to the Premier, can you explain why you've let the costs balloon to over 26 million dollars when they cannot seem to get the job done? Attorney General. Mr. Speaker, this is what happens when you do your fact-check through a newspaper report. They misread the estimates. It was never a million and a half dollars, ever. And so I'd love to see what it is you're relying on, unless it's strictly the newspaper article that you read. We share where that million and a half is categorically wrong. Now, Mr. Speaker, what is true and what Tribunals is saying is that we had a crisis because the Liberals left us a system that was failing. When we came in, we had this failing system, Mr. Speaker. Where we looked around the country, went to B.C., had a conversation so that we could have something that works for the people of Ontario. Now, I'm happy to send over a letter. This is not a prop. I'll send it to the Leader of the Opposition, wherein Minister Ebi says exactly what I was saying that they would share for free. Minister Ebi says you have two paths. You can go with PWC, which we recommend it'll be faster, or you can go the longer way around because they have success in B.C., Mr. Speaker. So what's the choice? Let the system fail, let Ontarians fail, or go with a proven trap? It's the Speaker who decides what's a prop and what isn't. And use that as a prop. Please don't do so again. And I'd remind members to make their comments through the chair. Start the clock. The final supplementary. Speaker, the long way around, like I don't know, having a fair process of giving Ontario companies a shot at a contract? Justice at the landlord and tenant board, they've been plagued with delays since this government came into office six long years ago. They are now more than 38,000 people waiting for their cases to be heard. People are waiting months and sometimes years for their hearing to be even scheduled. And while Ontarians are stuck in this chaos, this government's solution is to hand out more multimillion-dollar contracts to their insider friends and giant corporations. So one more time to the Premier, and I'm going to make it simple. Why was only one company considered for this contract, and why is it 26 times more expensive today than it was when it was signed? Mr. Speaker, this false narrative about an increase is nonsense, so I won't go into that anymore, but I'm not going to take business lessons. I'm going to withdraw the unparliamentary comment. What's the draw? Concludes answer. I will not take any lessons from the NDP in terms of how businesses run, Mr. Speaker. This is not a company with two men in the basement of a cottage. This is a company that's been in Canada over 100 years. They have an entire Justice Division within the company, and they have a track record by building the BC Parade, Mr. Speaker. So, you know, this isn't genuine. So if I can use that word, am I like, can't? You can't use that word. You're going to have to withdraw it. Withdraw? Yeah. You're trying to use words that the NDP will understand, Mr. Speaker. This is the Attorney General. I'm going to move on to the next question. The member for Q&A. Speaker, jurisdiction of healthcare for First Nations, people doesn't end when you step off reserve. On January 24, leadership of NISTAMIC's Ascii Nation held an emergency meeting on mental health and addictions. All levels of government were invited, and the leadership from NAN were very disappointed when none of the Ontario ministers showed up for the meeting. Can this government let the people know why they didn't show up for the emergency meeting? Minister of Northern Development and Indigenous Affairs. Thank you, Mr. Speaker. In subsequent conversations with the Grand Chief of Nishinauboski Nation, we have reaffirmed our commitment in a couple of important categories to address the mental health crisis, both in isolated communities and as well for students attending high school in Thunder Bay. Those resources, Mr. Speaker, focus on NAN Hope, a program ran by Q8NAC, Oki Makanak, an organization widely accepted and thought of as the right organization to deliver services to students on reserve and transitioning to the big city, Mr. Speaker, as well as mental health resources on the ground in Thunder Bay, additional new funding to support the challenges that they face, Mr. Speaker. That was the right action to take. It dealt on point with the kinds of things that the NAN leadership was asking to be addressed, and we were there for those communities. Thank you, Mr. Speaker. Supplementary back from number fifty yet now. Speaker, I would like to thank the government for that funding, but it was peanuts. Speaker, this government has an opportunity to listen to First Nations on health transformation, to be true partners, to treaty partners in health. We cannot continue to operate in crisis and we don't need to continue to lose our children, you know, to preventable deaths by suicide. Speaker, it's not normal to attend funerals for eleven-year-olds that have died by suicide. It's not normal, Speaker. Will this government start taking this snob asking nation health state of emergency seriously? The Associate Minister of Mental Health and Addictions. Thank you. Thank you, Mr. Speaker. We do take very seriously the work that we are doing with First Nations throughout the province of Ontario, especially in the north and in the remote communities. In fact, I was present for the announcement in Thunder Bay just two weeks ago, and it wasn't the end of the work we're doing. It's the beginning and a continuation of the collaboration that we've had for a long time. In fact, under the leadership of Premier Ford, this government, the Minister of Indigenous Affairs, we're working collaboratively with all First Nations across the province of Ontario. We're making investments in all the communities, as well as utilizing the Addiction Recovery Fund to put 56% of all the beds we've opened in the province in northern Ontario. And specific investments, $7 million to support land and water-based healing. Batchewana First Nation, Miss Gregoire, Kesheshawon, Kettle and Sony Point, Goodwater St. McCann, Tawaki TTN, and the First Nations Horizons Treatment Centre. Mr. Speaker, we're also working to provide supports to the youth. Thank you. I question the member for Richmond Hill. Thank you, Speaker. My question is to the Associate Minister of Small Business. Our government was elected with a strong mandate to serve the people of this province. We know that carbon tax adversely affect businesses and economy and makes life more expensive for Ontarians. That's why our Premier recently introduced legislation if passed, guarantees that no provincial government can force a carbon tax on the people of Ontario without their say. Small businesses in my community of Richmond Hill were thrilled to hear our government stand up for Ontarians and prioritize keeping costs down for families and businesses. They want to continue to lead by example and fight the carbon tax. Speaker, can the Associate Minister tell us what is the legislation will mean for small businesses? The Associate Minister for Small Business. Thank you, Speaker, and thank you to the great member from Richmond Hill for the question and for her great advocacy for the businesses in her right. This Premier and our government fought back against the carbon tax. Speaker, it's because we know that for so many households more tax means less money to spend at their local small businesses. And for so many entrepreneurs, more tax means less money to invest in their businesses or hiring staff. Speaker, while the Ontario Liberals and NDP have stayed silent as their friends in Ottawa plan to increase the carbon tax by over 37 cents per litre, our government is working to guarantee that no provincial government can force a costly carbon tax on the people of Ontario without ensuring their voices are heard, loud and clear. Thank you. Thank you. The supplementary question. Thank you, Speaker, and thank you to the Associate Minister for that response. Speaker, the costly carbon tax has taken a toll on families and small businesses in Richmond Hill and across the province. According to the Parliamentary Budget Officer by 2030, Ontarians will experience a decline in the quality of life due to additional costs resulting from carbon tax. With an estimated financial cost of 2,000 per household, individuals and families who are already struggling to make their ends meet will experience further hardship. While the NDP and the Liberals continue to believe that increasing taxes is a solution, our government knows that the carbon tax is unfair to the hardworking Ontarians. Speaker, through you to the Associate Minister, what are the small businesses saying about the impact of carbon tax on the business and the communities? The Associate Minister for Small Business. Thank you, Speaker, and again to the member for the question. Speaker, let me tell you what I'm hearing from businesses around the province, and this is a quote from a small manufacturer. The carbon tax increasing each year is crippling our ability to do business outside of our local area. We used to have a large province-wide presence with some of our projects in major retailer and online delivery, but now shipping costs are too high to make a profit doing that. Speaker, I've stood in this House and raised the fact that the federal government still hasn't returned the millions of dollars owed to small businesses in rebates. So, Speaker, once again, we're calling on the opposition and NDP and Liberals to pick up the phone, all their federal counterparts, and start supporting and advocating for their businesses and job creators in their right areas. Thank you. Thank you. The next question, the member for University of Rosedale. Thank you, Speaker. My question is to the Premier. The Conservatives came up with the definition of affordable housing in order to spur the construction of affordable homes 18 months ago. 18 months later, the law is still not in force. The government still can't make up their mind on what exact definition of affordable housing they're going to use, and not a single home has been built under this new initiative. Ontario is in a homelessness crisis and a housing affordability crisis, and given that, why is this government taking so long to get this affordable housing initiative off the ground? Minister of Minister of Affairs and Housing. Thank you, Mr Speaker. The member, of course, will know that her party was supportive. In fact, the House unanimously supported the definition of affordable housing that was passed by this government. At the same time, we're seeing tremendous growth across the province when it comes to purpose-built rentals. We are at the highest level in the history of the province, Mr Speaker. We had the unfortunate thing yesterday, of course, where the NDP doubled down on wanting us to tax those very same homes that she is wanting, the member across is wanting us to build. They want us to put on a development charge back on those, and we heard from Habitat for Humanity and we've heard from a lot of other affordable housing builders across the province of Ontario that the removal of taxes is what is spurring on the development of affordable housing across the province of Ontario. We want to build all types of housing, Mr Speaker. We want to build all types of housing because the dream of home ownership is something that not only should just be a dream, it is something that should be a reality for the people of the province of Ontario and because of the policies of this government, that is the reality for hundreds of thousands of people, Mr Speaker. We're going to continue to do that hard work. Mr Speaker, a supplementary question. It looks like affordable housing is a little bit too hard, so let's try attainable housing. 18 months ago, the Conservatives said that come up with an exact definition of attainable housing in order to spur the construction of attainable homes. 18 months later, and the law is still not in force, the government still cannot decide what the definition of attainable is going to be and not one home has been built under this new program, either. Why on earth is it taking the government so long to get these programs off the ground? Thank you. Mr. Secretary, Mr Speaker, it's just the opposite, actually. We're seeing the largest number of homes being built across the province of Ontario. We're seeing year after year those numbers increasing, more purpose-built rentals, more shovels in the ground that at any other time in the province's history, Mr Speaker, so I would invite the member to actually look at the stats. This occurs by one thing. I just want to stray for a second if I can't, colleagues, and I wanted to thank Colin D'Amello for his incredible reporting. I'm going to quote directly from Colin D'Amello, and I want to thank the member opposite for her support. We're seeing that in Ottawa, 1,200 new long-term care homes were built. In Markham, 320 new homes in Markham, 256 in Burlington, 192 new long-term care homes in Ajax, 256 in Peterborough, 288 new homes in Belleville, 224 in Clariton, 416 in Stovel, my hometown, Mr. Speaker. 160 in North Bay, 160 in Sarnia, and you know who's against that, the leader of the Liberal Party, who said that they're not homes, Mr. Speaker. That's shameful, Mr. Speaker. We'll continue to build homes for all Ontarians. The next question, the member for Essex. Thank you, Mr. Speaker. My question is for the Minister of Economic Development, Job Creation and Trade. The previous Liberal government was a disaster for Ontario's economy. Their agenda of high taxes and burdensome red tape, shuttered businesses, we saw their most talented workers flee south of the border and blocked new job-creating investments. Thankfully, the days of Liberals neglecting our economy are over. Our government has created the conditions for businesses to succeed, and as a result, good-paying jobs are being created across Ontario. Speaker, can the Minister provide us with an update on any recent developments that are helping to create good-paying jobs for the hard-working people of Ontario? They're here. Mr. Economic Development, Job Creation and Trade. Thank you very much, Speaker. Of course, I am going to start off with the fact that I have been starting off with almost every day that in 2023, Ontario created more manufacturing jobs than all 50 U.S. states combined. We cannot say that enough in this legislation. That is a sign, Speaker, that our auto plan is working. Think about when we attracted next star from Korea into Windsor. They are currently building a $5 billion battery plant, and at that time, we said there would be a lot of follow-on investment. Well, here's one. A company, Bobac, they have invested $35 million in a brand-new plant across the street in Windsor that does battery insulation panels and other parts for electric vehicles. They are putting 144 people to work there. And Bobac is already planning their Phase 2, which is a twin building next door. Speaker, it's because we lowered the cost of doing business by $8 billion. Supplementary question. I thank the Minister for that answer. It's great to hear about Bobac's new facility, which will create good-paying jobs for my constituents in the county of Essex. When the Liberals were in office, they were content with seeing new auto investments land in foreign jurisdictions while Ontario's auto sector stagnated. They didn't believe in Ontario auto workers and firms had what it takes to compete in the global economy. Unlike them, we believe in the hard-working men and women who power our economy and the firms who continue to provide Ontario with a competitive advantage. The contrast between our approach to economic development and the Liberals' failed approach could not be clearer. Speaker, can the Minister highlight how by fostering the conditions for businesses to succeed, our government has enabled the revitalization of our auto sector? Mr. Economic Development, job creation tree. Speaker, it's always important to remember where we were. To the students who are here, under the previous government, we lost 300,000 manufacturing jobs. Since Premier Ford was elected, we have seen 700,000 men and women go back to work. You know, it was only a few years ago that Reuters announced there would be $300 billion spent in electric vehicles around the world. And zero of it was coming to Canada. Zero. And now here we are, three years later, $28 billion, $28 billion in electric vehicles has landed in our province, putting men and women to work every single day. Bloomberg has now said that Canada is the number one jurisdiction around the world for electric vehicle parts. That is where we are. We have dethroned China from the number one position for the very first time. That's what's happening in the province. Thank you, Speaker. My question is for the Premier. On Eglinton Avenue East in Scarborough, 10 to 12 sections of brand new sidewalk were just dug up because of deficiencies in the Eglinton Crosstown LRT. Speaker, this happened a year after the Sloan Station on this platform's project was jackhammered and carried away in pieces. We're going into the 13th year of this project, Speaker, three years late, a billion dollars over budget. And that is the record of Metrolinx and Phil Verster, its million dollar CEO. They don't build transit, they break it. They don't finish projects, they extend them. So Speaker to the Premier, when will this government hold Mr. Verster and Metrolinx accountable? Mr. Speaker, we're making the largest investment in public transit in the entire world, Mr. Speaker, 70 billion. Well, let's look at the record of the previous Liberal government and the NDP voting against every single one of these investments, Mr. Speaker. Building upside down bridges, stopping highways from being built, stopping governments from investing in public transit. Mr. Speaker, that member has voted against every measure this government has taken to improve public transit in this province. Not only does he support the largest carbon tax in Ontario over 35 cents, he doesn't want anybody to ride on public transit, Mr. Speaker. He's voting against projects like the Ontario line. He's voting against projects like the Scarborough subway extension, Mr. Speaker. Our government will continue to commit to building the largest expansion of public transit in the world. Well, Mr. Speaker, back to the minister, I suppose. The people of Scarborough just got their answer today. They can see with their own eyes on Eglinton Avenue pieces of brand new sidewalk being carried away in dump trucks. Waste of money. Just like the people living near Sloan Station saw the platform carried away in dump trucks again. Another waste of money. But under this government's watch, Mr. Speaker, they can't blame anybody else. In 2020, the Auditor General told them that the Eglinton Crossdown LRT was being built at risk. Built at risk. Metrolinx, Phil Verster and their P3 buddies carried on despite that risk. And now we have at least 260 deficiencies in this project that this government will not answer for. Will not answer for. So, Speaker, when will this government do what a competent government would do? Fire Phil Verster. Signal that you demand change for the hardworking taxpayers of this province. Tell the people of Scarborough. Tell the people of Toronto that a new day is coming. We're going to build and not break public transit. The Associate Minister of Transportation. Thank you, Mr. Speaker. In the previous Liberal government, supported by NDP, Scarborough was a forgotten part of the City of Toronto. The leadership of Premier Ford. After 30 years of inaction, we are building Scarborough Subway. Mr. Speaker, shovel is in the ground for Ontario Line. Shovel is in the ground for Scarborough Subway. Mr. Speaker, Premier Ford made one fair possible. NDP and Liberal voted against one fair. Not just one, Mr. Speaker. They voted against one fair. Start the clock. The next question. The member for Scarborough, Guildwood. Mr. Speaker, my question is to the Premier.  Mr. Speaker, we appointed a very accomplished individual with the deep knowledge of how government works, with the deep knowledge of how various sectors work. We also appointed an individual who has complied with all of the rules and regulations with the Integrity Commissioner, with somebody who plays above board. That's the kind of person that we appointed. He happens to be registered with a particular company. It's not because the Liberals laugh.  Mr. Speaker, is there feigned indignation, Mr. Speaker? It is unbelievable, given their track record, that they even comment on this stuff. Mr. Speaker, back to the Premier. I take this to heart. I'm coming from a community in Scarborough that is deeply impacted by gun violence. Don't we matter? In my campaigning, I went to apartment buildings that I spoke to parents that have suffered because they have lost their 19-year-old, their 18-year-old, their 17-year-old, their students who have been impacted in their schools over gun violence. To the Premier, don't the people of Scarborough question to you again is why do you appoint a lobbyist to chair the panel that chooses our judges? We matter. Honours to the Chair, not directly across the floor. The Premier. You know something? I agree. Everyone matters. But why don't you support us on making sure we appoint tough judges to keep these criminals in jail until the young people that have been out to Scarborough a thousand times, not a hundred thousand times, supporting your community. And do you know what the mothers say? Throw these criminals in jail. That's what the mothers are telling me. They're telling me the same thing in Scarborough as they're telling me in Etobicoke North. They want to make sure their kids can walk to school peacefully. They want to make sure their kids can go to the park even at night time without getting a gun pointed at their head and the judge lets them out the next day. And that same criminal is in the park dealing drugs, putting guns to people's heads, robbing people. And guess what? He gets bail again. He doesn't get bail once. He doesn't get it twice. He's been out on bail eight times. In West End, Caster Dundas will come to order. Member for Ottawa South will come to order. Let's start the clock and start again. Member for Markham Thornhill. Thank you, Mr. Speaker. My question is for the Minister of Transportation. Ontario population is growing rapidly. As we continue to build our province, the transportation infrastructure also needs to be expanded. The constituent in my riding, Markham Thornhill, wants more transit, highway and roads. Because of Speaker, thank you to the 15 years of liberal inaction, communities are in infrastructure deficit. The liberal failed to build vital transportation network to keep up with our growing population and expanding business needs. Our government must continue to implement solution that would improve transportation for families and businesses. Mr. Speaker, can the Minister please tell us this House, how our government is ensuring we build infrastructure to strengthen our transit network? Thank you, Mr. Speaker. Minister of Transportation. Mr. Speaker, I want to thank the member for highlighting such an important issue. For 15 years, Mr. Speaker, the previous liberal government did absolutely nothing. Didn't build highways, didn't build transit, Mr. Speaker. In fact, they built upside down bridges, Mr. Speaker. And then what did they do? Their current leader let the charge to build highway 413, Mr. Speaker. Important projects. And then what happens two weeks ago, the federal minister environment, her friend says they're not going to invest in any more roads and bridges across this province, Mr. Speaker. They are so out of touch, but thanks to advocacy for members like that member for Mark and Thornton. We're going to make sure we invest in communities like Mark and Thornton. We're going to make sure we build transit. We're going to make sure we invest in the past because that is what the people of this province elected us to do. It's about making sure we save 30 minutes each trip on the 413, so you can spend more time with your families at home instead of being in gridlock, Mr. Speaker. It's about time the liberals and the NDP wake up and look at the challenges people are facing in their... Thank you. A supplementary question. Thank you, Speaker, and thank you to the Minister who is really encouraging to see Ontario lead the country on infrastructure investment. We are sending the clear message that transit infrastructure is a priority for this government. Mr. Speaker, our Premier once said there's no better place in the world to invest and raise family than here in Ontario. To ensure we remain the best place in the world for families, we must continue to keep course down. The people of our province expect that their government will continue to look for ways to make life easier and more affordable. Speaker, can the Minister of Police explain how the Ketit Done Act will deliver the true affordability and put more money back into the people pocket? Thank you, Mr. Speaker. Thank you, Mr. Speaker. Our government has been working since day one to make sure we keep life affordable for the residents of this province and our families. The previous Liberal government supported by the NDP raised taxes, tools, license fees on the hard working people of this province and our government has been committed to making sure we reduce tools. We take the tools off highways that we freeze license fees and no one will be able to implement a carbon tax in this province unless they take it to the people. The example of a truck driver yesterday $15,000 to $20,000 of carbon tax cost the truckers family, Mr. Speaker. The Liberals have supported the carbon tax every step of the way. That's $15,000 that could be going towards their own family, Mr. Speaker. Order. The carbon tax has increased costs on absolutely everything in this province, Mr. Speaker. We as a government will continue to fight for the hard working people of this province keep costs low. Thank you. Member for Hamilton Mountain will come to order. Next question to Member for Parkdale High Park. Thank you, Speaker. Families from Ola Daycare in my riding are in the house today. They are facing an $800 to $900 per child increase in the cost of their childcare because the operator had to withdraw from the $10 a day childcare program due to this conservative government's poor implementation. It's been two years since the agreement was signed with the federal government and Ontario still does not have a funding formula in place. Childcare centres simply cannot operate with this kind of unpredictability. Where is the funding formula you promised? And to reply, the Minister of Education. Thank you very much, Mr. Speaker. First of all, this is the government that cut childcare fees for those families by 50%, saving them $8,000 a year for contacts under the former Liberals. Childcare increased by 400%. And under their leadership, under Liberal leadership childcare became, the city of Toronto was a childcare desert. We have a commitment to build 19,000 net new spaces between now and year 2020 and we are on track to do it. Mr. Speaker, you raised a serious concern about the federal program. A concern we share. The difference is, when it came to voting in this House to stand up for for-profit operators like those in your riding, you opt to decide with the federal Liberal government to preclude a third of our parents who are here today who want government on their side and off their back. Instead of trying to speak from both sides of your mouth, vote for choice, respect for families. Stop the clock. Two things. I'll remind the members once again. Please make your comments through the chair. Secondly, I'm going to ask the Minister of Education to withdraw his unparliamentary remark. I withdraw. Start the clock. Supplementary. Speaker, the general operating funding to childcare programs which is a provincial responsibility is lower this year than it was in 2018 even before adjusting for record high inflation. Without dependable operating funding that increases with cost of living and without immediate action, more families like the ones with us today will be without affordable childcare. Families from older daycare have been left scrambling. Their choice is to pay hundreds of dollars more each month or lose their childcare spot. Will the Minister commit to, at the very least, increase funding to keep pace with inflation so operators don't leave the country? Mr. Speaker, the position of the Liberal Party and that of the new Democrats was to omit all for-profit childcare overwhelmingly operated by small business women. You would have literally removed the choice of government to provide support and a 50% reduction to those families. We are the only political party in this House that did what the Liberals could never have done to cut fees, increase spaces and stand up for the choices of all families in this province. Those are the facts. And so, while we increase wages for workers, we're going to continue cutting fees for working families, what we're not going to do is allow ideology to triumph over the right of all families to have choice and affordable childcare. Because the Liberals and new Democrats would have concluded them all. Mr. Speaker, we are going to remain responsible for the national crisis by cutting fees, creating more spaces and supporting all families in all regions of this province. Thank you. The next question, the Member for Kingston and the Islands. Mr. Speaker, the Premier boasted last week that the funding for post-secondary education announced on Monday would be, quote, fabulous. It's not fabulous, it's famine. The funding just proposes less than half of what the government's own blue ribbon panel recommended. In turn, that recommendation underamended to be fiscally responsible only partly restored what this government has allowed to erode away with inflation. On Monday, the minister was repeatedly asked how her fabulous announcement was even an adequate response to her own blue ribbon panel. The minister fell back on blaming Ottawa for her government's mismanagement and then we learned yesterday that they did not attend meetings with their federal counterparts. Mr. Speaker, when will they get it done, write and deliver adequate funding for Ontario colleges and universities? The minister of colleges and universities. Well, thank you, Mr. Speaker, and I will take no advice from that member of the Liberal Party on post-secondary education in this province. In fact, under the leadership of the Liberal government, tuition rose to the highest in Canada. Under the leadership of Premier Ford, we decreased tuition by 10% and it remained frozen. We announced just the other day and we are continuing to freeze tuition in this province. We are making post-secondary affordable for students in this province. Mr. Speaker, I announced a historic investment $1.3 billion, the largest investment in post-secondary education in more than a decade. We will make sure that our institutions have the stability and the predictability and not on the backs of Ontario students. Mr. Speaker, this Premier likes to say he's for the people. We know he's for his friends. Recently, we learned that the PCs and the minister of colleges and universities have been hosting over the last few years fundraisers attended by many officials of for-profit, private, career colleges that have boomed under this government. A month ago, only after the federal government took the drastic step of capping international student visas did this government put a moratorium on new public-private partnerships and begin a review of international student programs. Why did the Conservative government hold back and let the situation get so completely out of hand? When they're under criminal investigation by the RCMP for the Greenbelt scandal, how can we take seriously the Premier's words at a news conference that, quote, can influence our government? No one can influence any minister at all. Again, to respond, Mr. of colleges and universities. Thank you, Mr. Speaker. This government is for the people and for the students and we have proven that. Mr. Speaker, freezes tuition the leader of the Liberal Party wants to hike tuition. We are ensuring that tuition is affordable for every student in this province. Mr. Speaker, there is an affordability crisis. The price to heat, to eat, to rent we are going to ensure that every student has access to affordable post-secondary education in this province. Mr. Speaker, we made an historic announcement $1.3 billion to ensure sustainability and predictability for our institutions in this province. The House will come to order. The next question, the member for Whitby. Thank you, Mr. Speaker. My question is for the Minister of Labor Immigration Training and Skills Development. Mr. Speaker is experiencing a generational labor shortage that has left undressed will result in billions of dollars in lost productivity. According to the latest job agency wage survey, there are an estimated $237,000 on filled positions in the province. Mr. Speaker, that is exactly why we must continue to demonstrate leadership and help get more people into rewarding careers. Our government must remain steadfast in its commitment to positioning Ontario as the premier destination for both workers and businesses to thrive. Mr. Speaker, can the Minister outline what steps our government is taking to alleviate the labor shortage and propel Ontario to reach its full economic potential? Mr. Speaker, Mr. Speaker, thank you, Mr. Speaker. Mr. Speaker, today I was at Centennial College for Jill-of-all-trades event with the premier and a number of my colleagues and a trade teacher approached me and said, you know what, David? I'm really motivated to train in next generation and you know why? He was symbolic of the challenges facing, one in three tradesmen and women schools, the highways we so desperately need, it's going to require men and women in the trades.  Women like Carmen, who works for the TTC, Carmen was told by a big, burly guy, you're too small to work as a mechanic. Well, guess what? She is one today.  And, Speaker, guess what that guy said to her? He now asked her, how do I get into the trades? Well, thanks to our government, we're breaking down barriers, getting more youth into the trades so we can build things we can. We're cautioned the member in his choice of words, Minister Reilly, the supplementary question. Thank you, Speaker, and thank you to the minister for that answer. Our government understands that each miss paycheck not only impacts individual workers, but also represents a lost opportunity for families to improve their quality of life. To ensure and chair remains the best place to live, work, and, yes, raise a family, it's critical for our government to support employers in finding the skilled workers they need to grow their businesses and our economy. We must also continue our ongoing efforts to attract, support, and protect workers so that they can reach their full potential in the workplace. Speaker, can the minister please tell the House how our government is securing better jobs with bigger paychecks for hardworking workers and those who are seeking employment opportunities in our great province? Great question. Mr. Labour, innovation training and skills development. Thank you, Speaker. And, Speaker, I'm proud to rise to talk about a fund, a fund that sadly the opposition voted against, the Skills Development Fund. It's over a billion dollar, Speaker, and it's helped train half a million Ontarians. And, Speaker, let me tell you two quick stories. One, Shanaka. I met her at the Newcomer Centre in downtown Toronto. She talked about purpose-driven careers thanks to work this government is doing, supporting Sarah, Asalia, and the team there with the Skills Development Fund investment. Thanks to that, Speaker. She's gotten out of dead-end jobs. She's now got purpose in her life because we're lifting her up, something opposition would never do. Speaker, another story. Phil Fournier, Iron Worker 759, again, working dead-end cash jobs, not paying taxes, now a contributing member of the North, he's inspiring. He's training a next generation of Iron Workers. He's joined the union up there, again, thanks to Skills Development Fund. Speaker, this government's going to continue investing in the skilled trades because we're actually building things. After decades of neglect, we're getting it done for highways, roads, bridges, you name it, we're getting it done and training. Thank you. Next question, the Member for Oshawa. Thank you, Speaker. My question is to the Minister of Health. The region of Durham is one of the fastest-growing communities in Canada. New neighbors are joining us every single day, and we need the healthcare infrastructure to support them. Durham needs a new hospital, and we are ready to go, with the proposed site in Whitby selected by an expert panel two years ago. So for two years, families have been left waiting for hours at our overburdened care centres. Seven MPPs represent the Durham region, six of them are government members. I support a new Durham hospital. So Minister, do you agree that Durham needs a new hospital? The Deputy Premier and Minister of Health. Thank you, Speaker. I'm pleased to hear that the member in the opposition is actually talking about investments in our healthcare system. It is disappointing to suggest that the 50-plus hospital capital bills that we already have in the system have been voted against consistently every time we have a budget, every time we have estimates, the member opposite votes against those. So I would hope that as the process continues with the new Whitby hospital, and I have to say, you know, there is not a day that the member from Whitby does not talk about and give me an update. And the other Durham members, you know, as all of us are, we are very excited about the capital bills that are happening in our hospital systems across Ontario. I am very seized with the Whitby hospital in particular, and know that with the member's opposite support, I hope that you vote for it when it comes forward. Thank you, Speaker. Durham region needs a new hospital. The proposed site is in Whitby, and their new hospital campaign is catching like wild fire, understandably. A new Durham hospital means less stress on the rest of our healthcare system and on the Oshawa hospital, and it means better care across Durham. The last couple budgets we have not seen planning grants, so minister, all we need to get started is a planning grant. Will it be approved, and when can we expect it? Thank you. Minister of Health. Gain, $50 billion has been set aside for over 50 hospital capital, new expansion, renovation projects, and that the need as Ontario's population ages, as Ontario's population increases, we are there as a government, whether it is expanding health human resources, seats in colleges and universities, whether it is directing and making sure that people who want to practice in the province of Ontario have a seamless pathway to do that, whether it is an expansion of the North Durham Family Health Team that we announced two weeks ago. I trust that while the member advocates for her region, she keeps in mind that every time she votes against these projects, she is suggesting to her community that they are not worthy. Next question, the member for Newmarket, Arora. Thank you, Speaker. My question is for the Minister of Long-Term Care. All seniors in Ontario deserve access to the care and support they need when they need it. Despite numerous calls from experts and advocates, the previous Liberal government failed to acknowledge the critical importance of investing in long-term care facilities and services. Now, in contrast, our government has made record investments in building and redeveloping long-term care homes across this great province. But Speaker, with Ontario seniors entering long-term care homes later than ever before and often with more medically complex care needs, we must ensure that all residents receive safe, quality care. Speaker, can the Minister please tell the House what our government is doing to support long-term care homes and connect long-term care residents to more convenient care? Mr. Long-Term Care. Thank you, Speaker. I'm sure that hardworking member will agree with me when I say that. We don't always see eye-to-eye with the NDP and the Green Party over there, but I was glad, Speaker, to hear over the weekend that the NDP agrees, that the Green Party agrees that long-term care homes are indeed homes. That just leaves one party in this legislature that doesn't seem to get that picture. And I guess it's no surprise, right, Speaker? Because the Liberals, when they were in power for the better part of two decades, well, they made a goal. They said they were going to build 35,000 long-term care spaces, an admirable goal. I think that was in 2007. But, Speaker, you know what happened when they exited government in 2018? They had built a net-new 600 and 11. So it's no wonder, I suppose, the Liberals don't want to consider these homes homes because they failed miserably to actually build them. This Premier, Speaker, is getting it done with a record investment in capital and the Health Human Resort. Thank you. Thank you. The supplementary question. Thank you to the Minister for his response. It is great to hear about our government's continued effort in delivering safe, quality care for our elderly loved ones. Speaker, people with cognitive conditions like dementia often require more specialized care in long-term care homes. They often face more challenges in being connected to long-term care services. Our government must do all that we can to provide people with complex needs the care they need and deserve in the comfort of a home instead of a hospital. Speaker, can the Minister please tell this House what other steps our government is taking to ensure seniors get the care they need in order to live comfortably and with dignity? Mr. Blanchham. Speaker, there's a lot to list here. I wish I had an extra 19 seconds just to list those. But, Speaker, just speaking of the behavioral specialized units, $5.5 million investment announced just recently for three BSUs in homes in Brampton, Timmins and Etobicoke. This is the game-changing investment that we need for our seniors. It's not just about capital, which we are investing to record levels. It's not just about health human resources, which we are investing to record levels. It is about targeted approaches to making sure our seniors get the right care in the right place. Now, Speaker, let's contrast that. We talked about the past record of the Liberal government, but today they have a leader in Bonnie Crumby, somebody who promises to build but fails to deliver and doesn't even consider a long-term care home a home for its residents. Now, I challenge the leader of the Liberal Party and every single one of those Liberal members to walk with me into their ridings, into those homes, and tell those hard-working seniors who built our communities, who gave us our lives as we know it, that they are not living in a home. This government disagrees, Speaker. We're going to continue to invest into those who took care of us. Thank you. Thank you. The next question, November for Windsor West. Thank you, Speaker. My question is to the Premier. Due to lack of mental health supports in Windsor for children and youth with complex needs, parents are surrendering their children to the Children's Aid Society, hoping much needed help will finally be given. In some cases, the families are being forced to send their kids up the 401 to London or Elsa Craig, where they get put on a wait list for support. With no foster families to support their complex needs, kids, some as young as six years old, are put in unlicensed placements, a hotel speaker. Some kids will age out before they ever get the help they need. Some kids are being trafficked, and some are being targeted by drug dealers. Speaker, this is a very dire situation in my community and communities around the province. We should not have to send children from Windsor to London or Elsa Craig or anywhere outside of a community to get the supports and services they need. It is absolutely despicable. So when will the Premier act to ensure that children and youth with complex needs in Windsor have the mental health supports they need in Windsor? The Associate Minister of Mental Health and Addictions. Thank you, Mr. Speaker. And I want to thank the member opposite for that important question. If she's had an opportunity to read the roadmap to wellness, you'll see that we're building a plan for the province of Ontario and focused on children and youth, focused on adults, focused on seniors. And in the process of doing that, we've invested $525 million annually and will continue to do so. Mr. Speaker, we're focused on children and youth. We know how important it is to invest in the children and youth to ensure that they get the supports they need so that as adults they can live their lives the way everyone else does. And those investments are being made. Whether it be through the pediatric fund that was created, it was just announced by the Premier and the Minister of Health. Whether it be through the nearly $500 million that was invested and we continue to invest in children and youth. There's a lot of work to be done, but we are making progress and we are building a system that is making a difference in the lives of everyone and providing services in each of the areas where people live throughout the province. Thank you. That concludes our question period for this morning. Next, we have a deferred vote. Is there a point of order? We'll do it after the votes. We have a deferred vote on a motion for closure, on the motion for second reading of Bill 165, an act to amend the Ontario Energy Board Act 1998, respecting certain board proceedings and related matters. Call in the members. This is a five minute vote.


Greetings, everyone. My name is Vicky Podek. I work in semi-half embedded systems and today I will be presenting our free BSD and net BSD ports for the APM86290 system on chip from applied micro. During that presentation I would like to compare both systems in case of their portability, but I'm not willing to make any statements which system is better and which is not. I would like you to make that decision after the presentation. So this is a brief introduction to my presentation. First I would like to say a few words about embedded systems in general and market requirements for those systems. Then we are going to take a look on the hardware that we worked on, that means the APM. And especially I would like to say some words about method-passing architecture which was introduced to the chip. Then I will tell something about porting operating system to an embedded platform. This actually can be divided into some parts, some stages, and those stages are going to be described. And last but not least I'm going to say something about testing at debugging and current state and future work that we would like to perform on this port. So first question, what is an embedded system? Actually it is hard to say nowadays because embedded systems are actually everywhere starting from the doorbells ending on server boards. But the subject of our interest is mainly not X86. So maybe I skip that and go to the market requirements. Modern telecommunication industry demands more and more packet processing from the embedded platforms along with lower energy consumption. Of course additional hardware extra features like packet classification, security extensions, and offloading engines are highly appreciated. And according to that, very important features that are often implied in the embedded systems are these offloading engines. And software maybe fewer about software in general, even most sophisticated chip is just an empty vessel without software that is operating its features and capabilities. And usually we want the software as soon as possible. When the target is on the market, it has to be already supported by the operating system. Of course reliability, license, and availability. This is important for us because BSD license is very friendly for the vendors because not everyone wants to share their work for free. And BSD license gives the ownership of the code to the person who is developing it. And of course support for the chip's extra features. Okay, now a few words about the hardware. APM 86290 incorporates two-power PC bookie-compined cores in the single package. Apart from other details concerning cores, it is delivered with a bunch of peripherals integrated in the chip. This includes gigabit Ethernet, PCI Express, NAND memory, SATA, USB, iSquare-C, and others. And of course the on-chip processors are assisted with a rich set of configurable hardware accelerators focused on packet classification, scheduling, packet manipulation, and security extensions. And scheduling and packet data manipulation is combined in a facility named message-passing architecture. Okay. Now I would like to say a few words about message-passing architecture implemented in the APM. The core, the central point of this idea is queuing manager. It allows most efficient moving data and packets between the processor and the integrated peripherals. And it offloads the CPUs from the expensive data servicing. And queue manager interface, QMI, it is located in each of the supported devices on the chip. And it maintains the queue status and prefetch buffer status. Okay. So data transfers can be organized in queues. And QM allows system nodes to communicate with each other through the program queuing commands. And the main abstractions that mechanism distinguishes is queue, message and the buffer. So queues are organized in a circle of buffers and are stored off-chip in the main memory. And queue, and its contents are prefetched on chips as needed. The queue state is maintained on-chip for each queue. And it contains pointer to head and tail, occupancy level and other parameters. And when the queue contains messages that are pointers to free buffers in the memory, it has to be configured as a free pool. Otherwise, when these messages are pointing to an occupied buffer in the main memory, it has to be configured as working queue. So basically, we have two kind of messages in this idea. A standard message is 32 kilobytes long and can point to one packet, one buffer, means packet stored in DRAM. An expanded message, which is 36 kilobyte long, can point to maximum six messages, six buffers in my memory. In that case, the next data address four is pointing to another message of the same size, head. So it looks a little bit complicated. And this is an example of expanded message usage. Regarding buffers, they are fixed size memory locations that are used to store data. For instance, packets or something else. They are kept outside of the chip in DRAM. And messages in the working queue are assigned, have assigned buffers corresponding to the, they are assigned to the buffers, corresponding buffers in my memory. And this assignment is one to one. And we have two models of Q usage. First one is where we have one free pool and one working queue. And the second one is when we have one free pool and one working queue. And in addition, a compression queue. This second example is when the producer of data wants to know the status of, the compression status of the command he sent. This is an example of the first model. As we can see, the producer gets free pools from the free pool queue. Then he updates the corresponding buffer in my memory. And then he sends a message to the work queue of the consumer. And from that point, the producer is no longer concerned about transferring that data. So he can go back to his own jobs at that time. And the consumer might be occupied doing something else at that time. So this data is not lost. It's just waiting for his time to be processed. And after that time, he takes the data from the main memory of corresponding address from the message. And then the message is brought back to the free pool. And then he takes the data from the main memory of the pool. Second model has an additional compression queue. The start is the same practically. So the only difference is that the consumer returns a message to the compression queue. So that producer may know that the command has finished, was executed on the consumer. And then this free message goes back to the free pool. Okay. So now I'm going to say a few words about porting. General phases of porting are divided, for instance, in a way like I did. First is the baseline call selection. Then a cross build environment preparation, system boot strap, early kernel initialization in low core S. And platform initialization, device drivers along with support for chip special features. And the last is testing at debugging. So I will start with the first point. In our development, we started from FreeBSD 8.1 with basic support for PPC 460 EX, which was unofficial port not integrated to the main source. Finally, we wanted to move our work to FreeBSD 9. But this was a good start. And we had more out of experience and examples of this kind of chip from the previous works. So we started from the previous work. So we started from the previous work. We started from the previous works. So we need to rebase after basic preparations. But we have a firm baseline of the older brother of PPC 465. Okay. Regarding netBSD, we started from the port for MPC 8.5 XX on netBSD. And this probably wasn't a very good decision because there were also more similar platforms like Walnut. But we thought that this would be the right way because earlier port for PPC 460 was basing on MPC 8.5 XX. Okay. I omitted the part of concerning bootloader because our port was already supplied with sufficient bootloader, it means UBOOT. So we started from the first code that executes in the kernel. And this is lowcore.S. Or in netBSD, it's a start port for every platform. And as I said before, we need to make sure that we don't have a lot of problems. And we need to make sure that we don't have a lot of problems. And we need to make sure that we don't have a lot of problems. And we need to make sure that, as I said before, we made an assumption that the UBOOT already did basic sorts of initialization. And we have initial mappings present in the TLB so that our code could be executed. I might say at this point that in Boogie platforms, in Boogie platforms, there is no way to switch off the MMU. So there always has to be a valid translation in the TLB so that we could execute the code. Okay. So start code is written in the assembly language because it is capable to be executed for any place apart from C code. And goals to achieve at that point are to remap the kernel in virtual space so that, and set up temporary stack so that we could execute C code. And regarding this MMU issue, we had to slightly hack at this point because we wanted to, in order to remap the kernel, we had to create a temporary mapping switch to it then create a final mapping for kernel, switch to it, and in the end we invalidated all other entries in the TLB. So comparison of local and star code between freeBSD and netBSD. We hooked up to the existing local S for Boogie processors in freeBSD, set up of the exception vectors, so-called IVORs in freeBSD. So IVORs in Boogie processors, these registers contain offsets to exception handlers. So this is set in the low core. And this is the mapping process which I described a minute ago. And this stacks it up and after that we were able to go to the platform initialization in C code. In netBSD there is always a new file for a new platform. And this of course gives a little bit redundancy in the code because on the example of the Boogie platforms it could be combined in one file. And the rest was practically the same as to the freeBSD. Except for the low core in the netBSD is generic per platform. And basically it creates only the temporary stack. So in the platform initialization our main goals to achieve were to create mappings for the SOC registers, the CPU initialization, and message buffer and console initialization and in the end virtual memory subsystem bootstrap. And once again in freeBSD we hooked up to the existing mahtep for Boogie. We extracted the common part for the Boogie and the platform dependent mahtep. And next we mapped the SOC registers. And at this point I have to say that basically in freeBSD all of the platforms, embedded platforms, have their internal memory map registers organized in one place in this single continuous chunk of the memory. But APM has a couple of chunks. This area is divided into a few chunks. So we had to create a table with the translations and map our registers according to the table. And we applied minor changes to the UART and set up the console. And at this point in freeBSD 9, in freeBSD 9 we set up the FDT framework. In netBSD of course a new mahtep file for a new platform was created. The rest was basically the same except for the filling of the stack functions for the interrupts for Boogie processors, excuse me, exception for Boogie processors which are initialized at that point and basing out on that stack. Okay. Maybe one more thing to clear. The low memory management support is the most sensible area of the operating system. All of the packs that are located in the memory management are the most fatal for the overall system operation. And the lower level, the lowest level of the freeBSD and netBSD's virtual memory subsystem is PMAP. And PMAP basically manages the physical address maps, maintain the page tables and handle memory management hardware. And this was our point of interest because this was a way to adjust for our upcoming ports. So we had to implement the operations on TLB. This was consisting of creating functions for TLB writing, TLB reading, invidating particular entry and flashing means invidating and invidating a particular entry with a translation ID. Okay. So regarding device drivers, in freeBSD starting from 9.0 Flatten device reconcept has been adapted. And FDT is basically the hardware description for embedded platforms that describes the existing hardware in a unified way. And thanks to FDT we can use the same kernel for different platforms of the same family, which are different in case of registers or configuration or amount of peripherals and so on. And few words about FDT bus and simple bus. FDT bus is a glue between native freeBSD new bus device drivers framework and Flatten device tree device description. And simple bus is a main bus lying on FDT bus. Simple bus is managing, is adding children to the new bus framework. And FDT bus is managing resources like interrupts and memory resources. In this area we had to do a little modification because, as I said before, simple bus assumes that FDT assumes that all chips registers are grouped in one place. And we obtained, we got the DTS file which describes the hardware that was actually reflecting the actual bus hierarchy and device hierarchy in the hardware. So we modified a little bit FDT in order to store, to pass resources properly. In FDT there is an auto configuration process. During config the table with device description is created and there are two possible ways to configure the device, direct and indirect configuration. In the first example the bus is fully aware of the device in the system even if the corresponding driver is not present. In the second example the device has to probe the bus for the resource. And in FDT we had to write bus drivers from scratch when on free BST we had ready to use FDT bus and simple bus. And this is summary of what I said regarding the device drivers. And this is the list of devices that were elaborated during our work on APM. It is interrupt controller, gigabit ethernet along with Q-Manager, PCIe express, USB hosts, UART, I2C, GPIO and RPC. As it goes with interrupt controller the APM incorporates interrupt controller which is compliant with OpenPeak register interface specification 1.2. It is a well-known piece of hardware on free BSD. There was already ready to use OpenPeak driver and machine-dependent interrupt management liar which was located in IONTR, Magdeb. And very useful feature in free BSD is that interrupts, incoming interrupts are serviced in a similar way that treats our service. So the full preemption of the interrupts is implemented. In net BSD there was no ready to use OpenPeak driver. However, there were OpenPeak drivers but there were other designed or designated for the special platforms and we decided to combine the generic interrupt liar for PowerPC, our own code and OpenPeak driver to fulfill the requirement of the OpenPeak controller. Unfortunately, in net BSD we have SPLs. It means system priority level. This gave us a little bit trouble during development. So Ethernet controller is cooperating with the QM to maximize performance. And we created four types of queues for the Ethernet controller. First is receive queue, transmit queue and these are working queues and completion queue and free pool, of course. And also in Datapath there was a packet classifier which is not currently supported but it lied in a way so it is programmed to pass through all the incoming packets. And when the network stat wants to transfer a packet, it calls the AMI if start. And AMI is a shortcut for applied micro Ethernet just to be clear. And it starts sending packets. So in that moment QM is taking the messages from the processor and feeding the callbacks for the completion queue. And the message is sent to the controller. And after that the callback handlers are executed and packet is being sent and the processor is informed back about the completion of the task. And regarding receiving messages, receiving packets, when packet is being received by the controller and the handler, receiver handler is called so that the message to the processor is sent and the data could be acquired from the buffer. Of course, in order to improve our development, we implemented extended debugging features connected to the building kernel debugger. So it is fully supported. Okay, testing and debugging. Apart from JTAG debuggers and integrated debuggers in the chip, it is convenient that kernel has his own facilities and these are going to be presented now. These will be the testing framers and kernel debugging features. Okay, so both FreeBSD and NetBSD incorporates in kernel debugger. This can be enabled easily from the kernel configuration file by adding two options, KDB and DDB. And this needs basic console installation in order to communicate with the user. And kernel tracing facility, KTR, is a FreeBSD feature and can be added by adding an option, KTR, to the kernel configuration file. And this basically locks kernel actions while kernel is working. And this could be, according to configuration, either printed to the screen or stored in the memory and read after the problem occurs. NetBSD is equipped in automated testing framework and it is located in USR slash tests. Running is very simple as it can be seen. But in that case, we have to have a working system and this basically is good for finding issues that are not visible at first sight. So this kind of testing framework is included to the NetBSD. And our current state is that we support full core complex of the PPC 465 interfaces which were described before. And special features of the chip which is a support for data passing architecture. And it would be nice if we support SMP because there are two processors in the package. SATA, LDVACH and extend our utilization of the QM because not only Ethernet controller can or is able to use that facility. And of course cryptographic engines, power management support which is the main feature or one of the most appreciated features of the APM86290 processor. I would like to thank some people at that point. I would like to thank Rafał Jaworowski and Tantua Wysinka, mentors of this project and all the people who committed their work for the project. And these are Grzegorz Bernacki, Michał Mazur, Marcin Ropa, Łukasz Wójcik and Piotr Życik. This is all semi-health group. So this would be all from me. Are there any questions? If not, then thank you. I would rather not answer this question. If personally it was easier for me to work with free BSD than with net BSD according to the PowerPC platforms. I have a short question. You talked about some Q management system implemented in hardware. Which free PLS can use this system currently? You talked about Ethernet can use it? Are there more free PLS using it? Ethernet controller is using it. And other peripherals can also incorporate these features. For instance USB, I believe. And crypto, yes. One more time because I can hear you. I'm sorry. Is your porting work shared back into the trees? Free BSD and net BSD? We are going to integrate this to the free BSD mainline, but currently there are no plans to integrate to the net BSD. Oh, we can help. Here's some fallen tears. How much more work to integrate the cryptographic accelerator? I believe I can't answer this question because I simply don't know. But if you are very curious about this, please leave me some contacts and we will answer in a few days. Okay, so I think that's all. Thank you very much for your attention.


Thank you. Okay, let's start. So welcome to this presentation. My name is Kevin Boumedel, and you're going to see a presentation called Use Calcly with all your virtualization solutions. So first, some words about me. I'm a senior software engineer at Red Hat working on Covert. Here are some of the things I like. I like my guitars, piano, and so on. I like rollerblading. I like Python much more than Go, actually. And I like studying languages, Arabic, Berberian, for instance. Cool. About the agenda for today, I will talk a little bit about focus and automation. Then I will explain in this context what Calcly is, why it helps me. I will provide some additional facts. Then it will be time for live demo using this network, so we'll see how it goes. We will do a recap. And finally, we will have, hopefully, some time for questions. Let's begin. First, we have a couple of words about focus and automation. I want to convey the idea that it's getting more and more complicated to focus because we have things getting in the way like Facebook, Twitter, WhatsApp, Telegram, YouTube, or other stuff, right? So I really believe it's about finding the right balance between automating the boring parts and focusing, again, on what's relevant. So I must see something, guys. So in this context, I created a cool tool called Calcly. So what is Calcly? It's basically a client tool meant to interact with virtualization providers. And I mean leverage, but then it evolves into something that helps me ending covert, GCP, AWS, overt, and open stack. The idea is to easily manage VMs from command lines the same way, regardless of the platforms that you want to use. There's then also a construct which is called plan files, we will see what it is, which allows us to declare VMs or other objects like containers, networks, pools, disks, and so on, right? And then we are also able to share them using the concept of repos and products. There's Jinja support in those plan files which means that you can leverage Jinja constructs to actually declare variables use looping or conditional stuff. And there's also support for containers whether docker containers or Kubernetes objects pod or deployments to be actually accurate. There are existing plan files that I developed to deploy things like Kubernetes, OpenShift, Covert, Overt, OpenStack, Forman, and so on. There's even a web interface done in Flask which is probably crappy, but that's not relevant, I guess. Then let me provide you with some additional facts regarding the installation. You can deploy it either as a container or you can, a container that you can deploy with docker or podman to be accurate. Or you can also use an existing package so it's either RPM or DEB. In which case we only bundle lever dependencies to make those packages more. Right? There's an ecosystem around CACLY because CACLY is also a Python library. So it means that we can actually use NCBLE modules through CACLY. There's a dynamic inventory which lever is CACLY and there's even a Kubernetes custom controller that you can use to declare VMs there. So in all of those cases, I believe that the interest is that you have a single tool, right? Like, for instance, the dynamic inventory. You use the same dynamic inventory regardless of whether you're using Overt, Livert, OpenStack, and so on. And the same with the NCBLE module, a single NCBLE module, whether you're using GCP or AWS or Overt or Covert, whatever you have in mind. Okay, about the roadmap, the idea is mainly to add new providers, DigitalOcean, Azure, IBM Cloud, and Alibaba Cloud which I believe are the top cloud providers which are currently not coded in this tool. About weaknesses, there are some weaknesses I believe. So typically I believe that the documentation should be improved in particular the installation process. Then you need tests. I removed them at some point, but they are not back, but they need some shaping. And the logo offended the logo and probably it needs some improvements too. Okay, that's pretty much everything I wanted to cover. I didn't want to talk too much, but I already did talk too much. So let's go with the live demos. The idea is to show you how to do bootstrapping. Then we will create a VM in several places. We will use these profiles. We will use plan files. Then I will also explain how to deploy Covert and OpenShef, for instance, using product. And if we have enough time left, I will probably show you the web interface and maybe NCBLE integration. Let's try. Let me switch to this. Okay, I've got clear. And I will begin with this first...  Let's see if it works. Yes. Okay, so this demo is just bootstrapping, right? So what we want to do is just create a first provider and we want to launch a VM on it. Simple. So first I'm going to delete my existing caclyconfig file, which is stored in this directory, config.yaml, okay? And I'm going to use this command, caclybootstrap, to actually bootstrap this libret client. In this case, it's a remote one. Of course, I could also use my local libret, not in my case, but if you even Linux box. Okay, that's simple. This got bootstrapping and basically what it does is just creating this file, config.yaml, okay? Well, I want to show you... There's a default section over there, right? When I'm saying which client I want to use, it's caclyaml, then I'm setting default values for all the parameters that you can override. That's fine. And then there's a corresponding mylibret section with the name I put, where I say I want to use this remote hypervisor with default value and using SSH as a URI. Let's try this. Okay. Indeed, I can see my available clients, right? I've got this mylibret one that I just created along with a fake one that I use just to do testing and it has some other utilities, but it allows you to test cacly without any provider. Good. Okay. Once I'm there, what I will typically do is download Cloud Image, right? The idea is to leverage existing Cloud Image. So with this cacly download command, you can download either CentOS, Fedora, Ubuntu, Event Rail, or Debian Cloud Image so that you can create VMs from there. Let's see which one are available for this hypervisor. So I previously run cacly download CentOS 7 and so CentOS is there. So I want the CYROS run. I would do cacly download CYROS, so it's communicating with my mylibret remote instance, which is running at home, by the way. And it's downloaded it. And once it's finished downloading, we can see it's there. Cacly lists minus templates and I would be able to use this to create a VM. Okay. So let's create a VM finally. It's as simple as that. We specify the template that we want to use, right? And the name of the VM, VM1, okay? Cacly VM minus P and the VM got created. It's easy, okay? In this case, we are using default values for things like a CPU's memory. If you want to tweak this, how do we do that? Very much the same command that we can see that we are passing additional parameters. In this case, the memory, right? Two gigabytes VM and I'm also specifying the disks. I want the VM to have two disks with the indicated size. Cool. Now if I use Cacly list, I can list the VMs that are running in this hypervisor, right? VM1, VM2, they are there. And you can see that the IP is also shown. It's not really properly formatted because of the output, but that's fine, right? I can see the name of the VM and the IP and so on, right? So since I have the IP, actually I'm able to SSH into the VM. Cacly SSH VM1. I will connect to the VM. And you can see that I'm using the CentOS cloud image. I'm connecting a CentOS user. We are detecting the cloud user depending on the template that we want to use. And also you note that I didn't provide any password because my public key got automatically injected for me so that I don't have to think about it so that I can focus. Okay, cool. Let me exit this VM. Okay. And then I can delete my VM. VM1, VM2. In this case, I'm deleting with a single command line, right? VM1, VM2. Just to wait a little bit. And my VM is deleted. That will be my first demo. Let's go with the second one. This one is called a VM everywhere. So it's going to be pretty much the same stuff, but now we are going to create a VM not only on Libvert, but on other parts. Good. Let me first establish my own config file, which is a bit more complex. And you can see that indeed, mine has not only Libvert or KVM, but I also have AWS over KVM. I've got GCP, Covert over OpenStack, pretty much all of them. Good. Let's create a VM in my default Libvert client. We already did that. So it's pretty much the same. VM10 is getting created. That worked. We are happy. Okay. No. Let's do the same, but in this case, I'm going to create it in my GCP account, right? So for people familiar with that, I don't have to use the cloud, which is fine, but you need to learn it, okay? And it's created. Let's do the same with AWS. So in this case, AWS, I never use the AWS client, so I can't talk about it. I just use my tool, right? So under the hood, I have to indicate that when you attack GCP or AWS, you don't download the template. You use the existing cloud image from the corresponding cloud provider, of course. Okay. Good. If I list... Yes, I need to be careful with this. The VM on my default provider, right? They are there. The VM10 I created. If I list them on my GCP provider, so I'm just pointing to a different client, as I call them, right? I will see the VM that I've got there, so cover stuff, but also my VM10 is there. And the IP showing, so I could be... I would actually be able to say caclyssh, the same way that I did earlier. Okay. Let's finish with AWS. Pretty much the same. We try to also have the same output, regardless, again, of the virtualization that we want to use. And of course, we would do the same for covert, overt, or open stack. The same idea. Okay. Now I'm going to delete the VM on each of them, so it's pretty much as we did earlier, so that you just want to know that I'm specifying several clients, so I'm actually deleting sequentially the VM over there. And that's pretty much it. Let's go with a third demo. Okay. This one is called profile. Of course, because up until now, we have evacuated the VM with default settings, right? Or we specified part of the setting using common line, like memory and so on. That's fine, but we can do it better, right? So we are going to use profile. Profile are basically defined in the caclyprofile.tml file, right? So there are a bunch of them, but just let's focus on one I've created, which is called force them. So in this force them profile, I'm specifying that I want to use a template, which is optional. I want to use the centers one. I specify the number of CPUs that I want to use. Domain with the DNS is set to true, which means that the DNS entry will be created in this case in Libvert, or if I use GCP that will be created as a public DNS entry. I'm specifying that I want to disk with size 10 and 20 and so on. I think it's fairly readable. I'm also executing some command at launch time through Cloud in it. So I'm setting a custom mod here, as you can see here. And I'm also using notify, so you should see it here, but there's some push-ballot integration. We can also use caclyprofile. It's pretty much the same output, right? It doesn't show well because of the output, but that's fine. So let's create a VM with this profile. So the VM is named from the profile force them. Sorry. Since I'm not specifying a VNM, a random one is picked for me, right? This one is called instant write, and now it's deploying. Since I specified reserve DNS and set it to true, I'm actually waiting to collect the IP that I received through DHCP, and once it's done, the DNS entry will be created. There's also support for static networking. Okay, cool. If we check the info of this VM with cacly info, you can see the information, right? Again, the NICS, all the information is visible, and again, it will be the same regardless of the platform, right? Yes. And also just note that for most commands, if I don't specify a name for the command, the last created VM on the corresponding current provider is the one used, so the one I just created. Good. Let's connect to this VM, and for instance, we will check that the DNS entry was created along with custom mod D. You can see the custom mod D is there. If I do a ping of the VM, right, you can see it works, and you can't, I think you can't show it, but in my notification over here, right, you can see that because of the push-ballet, just right now, I've just received the information. So it's quite full, of course, not when you create a simple VM, but when you create several ones and you want to verify that things worked well, you can use that to launch a command and receive a notification on your phone or so on. Okay, cool. Let me exist. Okay, and finally, I will delete this VM. That's cool. Nice. I've got more demos. You tell me when you're bored with my demos. Okay, this one is called plans. Let's see what a plan file is. The idea behind the plan, it's come from the Terraform stuff, if you're familiar with that, more or less, right? But the idea is to pretty much create multiple objects at once and handle them as an entity. Let's see. This is a simple plan, right? So it will just create three VMs, VM1, VM2, and VM3. If you really have a look, it's pretty much the same syntax as the profile, technically, just that it's used in a different context, right? And by the way, I could be referencing here any profile that I've created, or I could even define a profile within this plan and point it directly. So I can do it whatever the way I want. Okay, so this one will create three VMs. So let's launch the plan. Calculate plan, and it's going to deploy my three VMs, VM1, VM2, and VM3, hopefully, turning on my NUC at home in this case. Okay, so VM1 got deployed, VM2 got deployed, and VM3 will get deployed just right now. Okay, cool. So we can see that the objects are there. We've calculated this as we did earlier. So I think you understand how it goes now. Okay, VM1, VM2, VM3, we've got the IP again. Okay, of course, if we rerun the plan, right, it won't recreate the VMs. It will keep them because they already exist. Okay, now if I delete one of the VMs, VM3, for instance, yes, and we run the plan. In this case, of course, the missing VM will get recreated. There's also support, by the way, to actually run the plan with a minus-minus update flag so that if you change some elements of the plan, then the VMs are updating accordingly with a memory, CPUs, the disk or the NICs section. Okay, we can also handle all the objects of the plans at once. For instance, we can stop all the VMs just by using plan minus-minus stops or start. There's also a start. We can even delete the plan at once. That's easy. And again, I insist that in this plan, it's not only about VMs. You can create your own Libert networks or your own networks, regardless of the visualization platform. You can create containers. You can create disks and so on. Okay, here's a more complex plan. Don't get scared, right? But just so that you understand, this one is using parameters. So what it means is that we define a default parameter section. We say no to free. We define whatever variables that we want, the template, the domain and so on, some keys, right? And then we use Jinja to loop, right? Using these parameters. And then we use whatever parameters we want, right? There's also a file and script section that I can use to actually inject files within my VMs or scripts to actually run script that is some arbitrary commands that I want to use. And they are also rendered. So that means that if I have a look at the file that I want to inject, it can either be static or it can be Jinja, pretty much. Okay, the same with scripts. I want to install all those packages, right? And I'm using the package variable that is defined over there. So with that, I can actually launch my plan with this command, right? So pretty much what we saw earlier, but the difference is that I'm actually forcing overriding some of the parameters. So remember, nodes was set to free, for instance. So in this case, no, I set no to five. So I will create not three VMs but five, right? And the disk size was one of the parameters. So I've just overrided. So instead of disk set to 20, there will be set to 30. And indeed, I can see that not only did I create those three VMs, but now it's going to create the two of the VMs, right? And I could rerun the plan with a different node setting. Let's say a node set to 20 and it would recreate the missing VMs. Now it's when I need to wait because I want the IP to be there. I've got five minutes. I'm good. I'm good with that. That's fine. Okay. Calculate list. Okay. Just one Calculate list because I just want to, for the workflow of the demo, to be sure that I'm able to SSH to the VM. So I can. So indeed, let me just remove that. Right? I can SSH, right? And we can see, right, that I'm connected, cloud init and all that stuff. But if I do a sudo minus I, right? I can see my file and we can see it's there and it's got rendered, right? With whatever parameters I set, for instance, the node set to five. So you can pretty much create whatever you want. That's the idea. Good. Let me exit. Yes. And I would conclude this demo. I've got one left, one left. This one go with product. Okay. So products are pretty much the same idea as the plan file. The only difference is that we want to, they sit on top of them to make them easy to redistribute, redistribute, sorry, and to use for people not wanting to deal with plan details. Okay. So how does it go? I create repo, right? This is my repo. This is my URL where I'm storing those plan files. And actually it's just a git repo that is cloned. You don't calculate slash plans, right? So those are all the plans I have, along with this Kmeta file which contains metadata. I've got this metadata. And since I'm able to browse it, I can see all the available products at my disposal. So I've got all those samples. Then I've got, it doesn't show very well, but OpenStack, OpenShift, Kubernetes, and so on. So let's go with one of them. For instance, I can list the products of a given product. For instance, OpenShift. I can deploy whatever I want. For instance, Fission, Federation, if you want to deploy to VMs, and so on. Let's deploy one. Sorry, first, let's get information on one of the product. Covert. I want to deploy Covert. I can say Calculate Product Covert minus, minus info. And I see description of the plan. And then pretty much those are all the parameters that you can override. Under the hood, it's using this plan concept. Let's say I want to deploy Covert. Calculate Product Covert. You've got Calculate Install. You've got an available provider somewhere. And you are pretty much deploying it. It deployed. Once Cloudy is finished, you've got Covert installed. Let's install, for instance, OpenShift, right? But in this case, I'm going to override some parameters. So it's pretty much the same. But I'm saying, yeah, deploy Origin using OC Cluster App. We don't care how it's deployed. I just want OpenShift, technically. And I'm setting Knative to 2. It will install Knative, STO, whatever it has to install. And of course, I can check VM. And I can see that my VM got created. Yeah, Covert, Origin, whatever VM. The one that it didn't delete. OK, I think I'm going to stop here because I don't want to do too much demo. So let me get back to this. We did the demo, right? So just to recap, automating the boring stuff, right? Always trying to focus. And in this context, I believe that can be the tool that at least helps me in automating the infrastructure. Whether you've got one single liver, you have got several ones. You're using overclock providers. I think it's an helpful tool. So feel free to use it. And now if you have questions, it's going to be the right time. And if you don't have questions, just this picture that I put, it's an optical illusion. If you focus, but it's going to be difficult because it's short, but you can come closer if you want. But if you focus on whatever part of the picture for like 10 seconds, you should see other image blur and turn white. If that doesn't work, it's because you're too far away. Sorry for that. Any questions? No, it's the time. Go ahead. OK, the question was, can you include information in the plan file so that you deploy VMs across several cloud providers? More or less? Yes, you can. I didn't show it, but one of the parameters that you can use in the plan file is also specifying which client you want to create for a given VM. So you can say, create me a few VMs, but two of them on this cloud provider and the last one on this one. And the same for DNS, by the way. Last question, I believe, because I'm out of time. Does that make sense in provision with Ansible, for example, a VM would create? That's a good question. Sorry, first I need to repeat the question. The question was, can you use it along with Ansible to fully provision a VM? Yes, there are different ways you can do that. There's the dynamic inventory. There are Ansible-Cackly modules. And then there's Ansible integration in the plan files, which means that when you create the VM, you can just let Cackly create the VM. And within the plan file, you can specify an Ansible or some Ansible playbooks that you want to run along with Cackly. You like it? Thank you. Yes. Thank you. Thank you. Is that yours? No, this is yours. This is all mine, yes. Thank you. How are you? Very nice presentation. The only detail, I have only one remark. Wide line. I crossed it too much. Yeah, I knew it, man. But you didn't say anything. My friend, I guess I'm good. I have a request. If you... Here is the guy who has questions. Please take those slides because we need to answer the speakers. Let's start with questions outside. Thank you for your great presentation. Yes. Yeah, we can talk French now. Ah, thank you. It's great. Excellent. I was doing that and it's beautiful. Did you like it? Thank you. I started doing the same little tool to integrate Olivier and other things for my Blue. And I'm using it now. It's great. Thank you. I like it. Oh, okay.