Good evening. I'd like to call this meeting of the Durham City Council order for the meeting of January the 7th 2019. First I want to wish everyone a happy New Year and say how happy we are to have everybody back and to be back and we're looking forward to a great year together here in the City of Durham. I certainly want to welcome all of you all here tonight. And now I'll ask you to please join me for a moment of silent meditation. Thank you. Councilmember Reese would you like to lead us in the pledge? Thank you Mr. Mayor. Good evening everyone. If it's your practice to do so and if you're able please rise as we say the Pledge of Allegiance. I pledge allegiance to the flag of the United States of America and to the Republic for which it stands, one nation under God, indivisible, with liberty and justice for all. Thank you Councilmember. And now Madam Clerk would you please call the roll? Mayor Shul? Here. Mayor Pro Tem Johnson? Here. Councilmember Alston? Here. Councilmember Caballero? Here. Councilmember Freeman? Here. Councilmember Middleton? Here. Councilmember Reese? Here. Thank you very much. And now we're going to proceed with our ceremonial items. Our first item with Parks and Recreation Accreditation designation. And I'm going to ask Councilmember Reese to join me at the podium and we will welcome our, he's already gone. Great. And he will welcome our guests. Good evening everyone. Thank you for joining us tonight. This is really exciting. Tonight we're going to read a proclamation honoring our Parks and Recreation Department for their recent accreditation. I just wanted to take a moment to say that back in April was it? When the folks were here? April sounds right. Back in April of 2018 a number of us had the opportunity to visit with the folks from Parks and Rec and the folks from the commission that does this accreditation. And I was really struck by how impressed they were at our Parks and Recreation Department.  This is a proclamation for the Parks and Recreation Accreditation designation whereas Parks and Recreation provides fun places to be physically active, enjoy nature, and socialize with friends and neighbors. And whereas Parks and Recreation provides essential environmental and aesthetic benefits that make Durham a great place to live, work, and play. And whereas agency accreditation is a quality assurance and quality improvement process. And whereas accreditation through the commission for accreditation of Park and Recreation agencies is a five-year cycle that includes three phases, development of the agency self assessment report, the onsite visitation, and the commission's review and decision. And whereas agency accreditation is based on compliance with 151 standards for national accreditation. And whereas a standard is a statement of desirable practice set forth by experienced professionals. And whereas the standards provide an effective, incredible means of evaluating a Park and Recreation agency's overall system. And whereas Durham Parks and Recreation has met all of the national standards of best practice. And whereas there are currently 174 accredited Park and Recreation agencies in the United States. Whereas and whereas the department Durham Parks and Recreation is one of 12 accredited agencies in the state of North Carolina. And whereas the city of Durham recognizes the benefits of a nationally accredited Park and Recreation agency. Therefore, I, Stephen M. Shule, Mayor of the City of Durham, North Carolina, along with the entire city council extend to Durham Parks and Recreation our sincere congratulations on achieving national re-accreditation from the commission for accreditation of Park and Recreation agencies and call upon all cities to wreck all citizens to recognize the significance of this event. With this, my hand in the corporate seal city of Durham, North Carolina on the seventh day, January 2019. Okay. Thank you all so much. I have to be remiss if I didn't thank the city manager and our deputy city manager, Bo Ferguson, our city council and DPR employees for all the support to accomplish this. If you saw on the first picture, that was our entire department. I want to thank also our, we have our deputy, our assistant directors back here, Joy, raise your hand, Tom Dawson, Jason Jones. And we couldn't done it without the leadership of Gina Bray, who is our accreditation coordinator. She keeps us on track. We are committed to continue striving to be one of the best parks and recreation departments in the nation. And we are will continue the hard work that we started back in 2008. And I would like to also take this time to introduce Michelle Wells, who is our executive director for North Carolina Recreation Park Association and Keith Jenkins, who is our president. It is indeed our honor to be here tonight to celebrate with the city of Durham and Parks Recreation Department this wonderful continuation of their achievement and acknowledgement of how important it is to set forth to be the best of the best. I think if you caught in the proclamation, they achieved 151 of 151 standards. And if we were teachers giving them a grade, that would be an A plus plus at 100, correct? Durham does a great job. They're actually one of the departments when I get called and people say we're looking for someone to pilot, to partner with. We have a pilot program. Durham's one of those departments that comes to mind. Not only are they willing to do it, but they have the skills and the knowledge and enthusiasm to do it. And I always hear great things about that. And they are also a great partner with NCRPA for us to offer educational programs and opportunities for fellow professionals, not only in the region, but across the state. So we're delighted to be here tonight to celebrate with you. Thanks, Michelle. My name is Keith Jenkins, president for the North Carolina Recreation Park Association.  I'd like to ask that Mayor Schull is joining us and also, Mr. Bonifit, if you could join us, please. If there are any other parks and recreation staff or members of the Recreation Advisory Commission in the audience tonight, please stand. We know this took the support of each and every one of you. I can certainly say as a member of the town of Cary, we're one of the accredited agencies and I serve on that panel as well. The work that these individuals have to put in to meet those 151 standards is outstanding. It's a laborious process. As they mentioned, 174 agencies across the entire nation are accredited. So you definitely are in the top 1% of all those agencies. So now on behalf of the North Carolina Recreation and Park Association, the National Recreation and Park Association, and the Commission for Accreditation of Park and Recreation Agencies, it is our honor to present this recognition to Durham Parks and Recreation for being in the top 1% of Park and Recreation Agencies in the nation through your achievement of accreditation. Congratulations. Congratulations. Thank you for the opportunity for Michelle and I to recognize the Parks, Recreation and Cultural Resources Department this evening for a job well done. That's your wife, you're taking the picture out. Come on, everybody. You got to get in front. Come on, Michelle. Charlie. Can we see Joy? Thank you. Thank you so much. Appreciate it. Thank you. I want to thank Keith and Michelle. Michelle has always been a wonderful partner for Durham and we really appreciate the work of the State Association that we're a member of and you all have been a great partner. We really appreciate it. So thank you, everybody. Thank you and the council members. Thank you for your support of Parks and Recreation here in Durham. They're doing a fantastic job and your support's very important and appreciated. Thank you. All right. That was a fun item. And now we've got another fun item. I will tell you this is this is a special item for me. I got a call from or an email for Mr. Bill Schaefer. Mr. Schaefer is in the audience. Would you raise your hand? Mr. Schaefer wrote me a couple of months ago and said, did I know that we had in Durham the National Women's Chest Champion who was about to compete for the International Chest Championship? Which I did not know, but which I was thrilled to find out. We often honor athletic champions in this chamber, but I don't know that we've ever honored a chest champion. Mr. one of the things I want to say about it, it is a Mr. Schaefer is his neighbor to our chest champion while I'll introduce in a moment. I just want to say first of all, what a great act of neighborliness that that he would reach out. He suggested that I call our champion before she left for the International Championship. So I did that, which was a lot of fun. Having never spoken to a chest champion before and wished her Godspeed and her endeavors. But I just want to and so at that point I knew that we needed to have Sabina Fosor our US National Chest Champion down here to Durham City Hall to receive this proclamation. So Sabina, I'm going to ask you and all of your friends that you've brought with you to please come forward as we make this proclamation honoring the contributions of Sabina Francesca Francesca Fosor. Whereas in November 2018, Sabina Francesca Fosor brought international acclaim and glory to herself, her country and the Durham community with her competition for the title of women's world champion of chess in Conte Montiusk, Russia. And whereas Sabina Fosor was born in Timosora, Romania, immigrated to the United States of America in 2008 and settled in Durham in 2017 drawn by the cultural diversity and welcoming attitude to the city. And whereas she achieved the rare and prestigious title of women of woman grandmaster of chess in 2007 at the age of 18, based on beating elite players and international competitions. And whereas Sabina's bravery, determination and consummate skill to dramatically win the 2017 US Women's Championship with a spectacular queen sacrifice in the final round, while at the same time grieving the loss of her mother before the tournament began is an encouragement and example for all who face personal loss and grief. And whereas Sabina success in a traditionally male dominated sport and her passion for encouraging females and youth to believe in their ability to compete and grow in the intellectually demanding and rewarding discipline of chess has enriched the lives of many. And whereas Sabina has volunteered her time and personally invested in the lives of youth by giving inspirational talks and lessons and by seeking to instill a love for chess which will reap lifelong benefits of logical thinking, discipline and respect for others. And whereas the Durham community is proud to have among our residents this national champion and international championship contender at the highest levels of chess competition. Now therefore, I, Stephen M. Shull, Mayor of the City of Durham, North Carolina to hereby proclaim January 7th, 2019 as Sabina Francesca Foisor Day in the City of Durham and hereby urge all residents to take note of this occasion and celebrate it in honor of this esteemed Durham champion. Witness my hand in the corporate seal of the City of Durham, North Carolina, the seventh day of January, 2019. Sabina, I'm going to present this proclamation to you and ask you if you would come forward to say a few words to us. I'm usually very nervous, so I wrote something. Good evening, everyone. Thank you very much for having me here today. Thank you, Mayor Shull, for this invitation and city council members and guests. I am very thankful for my family and my friends because without them, I wouldn't be here today. I'm also thankful for my fiancé who is here tonight. Can celebrate this with me. Thank you, Bill, as well, and your wife, Leslie, for being here for me tonight. Carol, I'm really humbled and honored for receiving this award. Jess has been my everyday companion since I was four years old. My parents taught me and throughout the years I learned that Jess can teach us a lot, can help us have a better memory, have a better critical thinking, strategic planning, but also have patience and also taught me never to give up. I've had a lot of struggles in my chess career, so it's been tough to overcome these difficulties, but I learned to never give up. It's the type of game that teaches you something even when you are actually losing the game. Without chess, I probably wouldn't be standing here tonight, so I'm thankful to Jess as well for that. It also gave me the chance to study in the United States, and I'm very grateful for that and for having chosen Durham to be my home now. I've moved here in 2017 and both my parents and I decided to buy a place to stay here for good. One last thing that I want to say is that this award is a new motivation for me to continue using chess as a way to return to the community, and I have some projects in mind that I hope I'll be able to do, like thinking about collegiate chess. Actually, this year, at the end of this year, the Pan American Team Championships, which is an event for universities, is going to be coming in North Carolina in Charlotte, so I hope I'll be able to find some, to talk to universities from around as to if they're interested in competing, but most importantly, I want to use chess as a means to empower females girls to to succeed in a male dominated sport. Thank you very much. Take another picture. Please do. Thank you. Congratulations. It's great to have a national champion in the house. Next, I'm going to ask my colleague, Mark Anthony Middleton to come forward for the, excuse me, proclamation, celebrating and honoring the life of Dr. Martin Luther King Jr. And I'm going to ask Dr. Warren Langley also if he would come forward to receive the proclamation. Good evening, everyone. And happy New Year. My thanks to the mayor. I'd like you to step up now. My thanks to his honor, the mayor for allowing us to participate in what you what you can see as one of the coolest prerogatives of his office. And that's reading of these proclamations and resolutions. My suspicion is that the fact is not lost on the mayor of the place that Dr. King holds in my personal pantheon of American heroes and leaders. So I thank him for this this wonderful opportunity. Honoring the life of the late Reverend Dr. Martin Luther King Jr. Whereas champion of justice, Dr. Martin Luther King Jr. devoted his life to strengthening the content of the American character, and fought unrelentingly for the civil rights of all Americans, and taught us through non violence, that courage displaces fear. Love transforms hate. Acceptance dissipates prejudice, and mutual regard cancels enmity. And whereas Dr. King helped to organize efforts, plan events, and lead marches to advance the rights of African Americans to vote, for desegregation, for recognition and respect for labor rights, and to ensure other basic civil rights. And whereas Dr. King was one of the leaders, one of the leaders of the successful Montgomery bus boycott in 1955, and helped found and served as the first president of the Southern Christian Leadership Conference in 1957, to coordinate and support nonviolent direct action as a method of desegregating bus systems across the South. And whereas between 1960 and 1964, Dr. King made addresses in Durham, at White Rock Baptist Church, the Durham Business and Professional Chain, Hillside High School, Jack Tar Hotel to the Southern Political Science Association, North Carolina College now North Carolina Central University, and Duke University urging civil disobedience and nonviolent protest to end racial segregation and discrimination. And whereas Dr. King helped organize the 1963 nonviolent protest in Birmingham, Alabama, that drew national attention to the struggle for civil rights, and the hateful and brutal responses of local law enforcement, and helped organize the march on Washington, during which he delivered his eloquent and moving, I have a dream speech. And whereas Dr. King helped to organize the monumentally inspiring Selma to Montgomery marches in 1965, to advocate for passage of the Voting Rights Act to guarantee African American citizens the right to vote. And whereas Dr. King was supporting the garbage workers in Memphis, Tennessee, and planning the poor people's campaign to promote economic justice, when he was assassinated in Memphis in 1968. Now, therefore, I, Stephen M. Shull, Mayor of the City of Durham, North Carolina, do hereby honor the life and work of the late Dr. Martin Luther King Jr. and his commitment to a free and just world, hereby urge all residents of the City of Durham to join us in reflecting on and advancing Dr. King's life and fulfilling his dream, witness my hand in the corporate seal of the City of Durham, North Carolina, the seventh day of January 2019. Thank you, Councilman Middleton. On behalf of the Durham MLK steering committee, we would like to thank the City Council members and the mayor for this proclamation, but also to invite members of the community out to the different events that we'll be having throughout the month of January and recognition and honor of Dr. King. So I wanted to share with you all the list of events that we have for 2019. On next Monday, January the 14th, we will receive a proclamation from the Board of County Commissioners celebrating and honoring the life of Dr. King. On Saturday, January the 14th, at 12 noon in CCB Plaza, we will have a refland ceremony in honor of the life of Dr. King. On Monday, January the 21st, we will have in partnership with the Triangle Martin Luther King Committee, the 39th annual Martin Luther King Triangle Interfaith Prayer Breakfast with keynote speaker David Crabtree. That will begin at 7 a.m. Breakfast will be from 6 a.m. to 8 a.m. We will have the Unity March and Rally beginning at North Carolina Mutual Life Insurance Company proceeding to First Presbyterian beginning at 10 30 a.m. We will have two day of service events. One will be in partnership with the Book Harvest. We're asking members of the community that attend the March and Rally as well as our annual religious service to please bring new books for donation to children. We will also have a day of service event with Jubilee Home from 230 to five at 404 East Umstead Street and then we will conclude our events with our annual religious celebration with keynote speaker Reverend Dr. William C. Turner and at that event we will also award academic scholarships as well as the 2009 Keeper of the Dream Award which goes to one individual and one member of our community. So if your schedule permits we will welcome members of the community as well as council to please be present and attend. Thank you so very much. Thank you very much council member Middleton and I'm going to ask DeWarran to stay here and I'm going to ask my city council colleague Javier Caballero if she would come and do the honors now for the National Mentoring Month proclamation. There are a number of organizations that are present from the Long Ball Program as well as Emily Kaye Center, TMA Leadership Academy as well as Project Proud. Please come up and join me at the podium. Good evening. Whereas in 2002 the Harvard School of Public Health and Mentor the National Mentoring Partnership created National Mentoring Month and whereas the goals of National Mentoring Month are to raise awareness of mentoring, recruit individuals to mentor, encourage organizations to engage and integrate quality mentoring into their efforts and motivate youth to excel and whereas a mentor is a caring person that provides a consistent presence and devotes time to a young person to help that young person discover personal strength to persevere, achieve their potential and thrive through a structured and trusting relationship and whereas nobody succeeds on their own, mentors provide young people the chance they need to move forward and set their sights even higher where they're helping young people study for a test, learn a new skill or lift their heads up after a setback and whereas quality mentoring encourages and empowers young people to make positive choices, promote self-esteem and character development, support academic achievement and introduce young people to new ideas and whereas mentoring programs have shown to be effective in combating school violence, discipline problems, substance abuse, incarceration and truancy and whereas development experts agree that youth mentoring is critical to the social, emotional and cognitive development of our young people and helps them navigate the path to adulthood more successfully and whereas research shows that young people who are at risk for not completing high school but who had a mentor were 52 percent more likely than their peers to skip a day of school, 55 percent more likely to be enrolled in college, 81 percent more likely to report participating regularly in extracurricular activities, 46 percent less likely than their peers to start using drugs, 130 percent more than twice as likely to say they held a leadership position in a club or sports team and 78 percent more likely to volunteer regularly in their communities whereas mentors help young people set career goals and use their personal contacts to help young people meet industry professionals and find jobs to improve professional outcomes for young people now therefore I Steven M. Schulmeyer of the city of Durham, North Carolina do hereby proclaim January 19th as National Mentoring Month in the city of Durham and hereby call upon all public officials, business and community leaders and educators and encourage all citizens to observe this month with appropriate ceremonies, activities and programs in order to recognize the men and women who serve as staff and volunteers at quality mentoring programs and help our young people find inner strength and reach their full potential acknowledge that mentoring is beneficial because it facilitates healthy identity development encourages educational achievement reduces juvenile delinquency expands career readiness improves life outcomes and strengthens communities promote the creation expansion sustainability and funding of quality mentoring programs across Durham to equip young people with the tools needed to lead healthy and productive lives and support initiatives to close the mentoring gap and promote critical mentoring to support boys of color with mentors who perceive and understand social political and economic oppression and to take action against oppressive elements of society witness my hand in the corporate seal of the city of Durham North Carolina this seventh day of January 2019. Thank you all so very much for this proclamation I can recognize in January as National Mentoring Month as you all know as a long-term member of this community I've always supported mentoring as a means for helping to advance the lives of our youth this evening we have a few organizations that work with young people in this community and I wanted to provide them with an opportunity to share what they do and how it advances to work for young people in this community. Hello everyone my name is Emmanuel Beattie I serve as the director of community affairs for Thomas Mentoring Leadership Academy we serve as about 30 boys right now between the ages of nine to 14 we serve as young men who come from single mother household or live with a grandparent or foster parent so those are the demographic of kids that we're working with on a daily basis I'm ensuring that they're making the right decisions and staying away from at risk behavior so Thomas Mentoring Leadership Academy you can find us at tmlacademy.org or tml academy on facebook as well. Good evening my name is Dwayne Campbell and I represent MLK Center we are a college hub in Durham North Carolina or job is to ensure that there are more students matriculating into college there are far too many of our students who missed the opportunity to get enrolled in for your quality for your education programs and we've recognized that Durham's youth has a lot of have a lot of potential and we want to ensure that these students recognize that there are so many opportunities beyond just MLK Center and but there are other opportunities that will come their way if they get post-secondary education access and we have four major programs and our main programs are for elementary to middle school students and then we have a second program that's a closed program for secondary school students we have another program for students who are on college campuses who need the support to transition to colleges and the program that I had is called game plan college and we go across Durham North Carolina ensuring that all high school students know that they are able to get to college and we provide them with the necessary support and we ask that you support MLK Center's work thank you good evening I'm Pat I run the long bar inner city baseball program and we push education there are 167 kids in our program and I'm glad to announce that this year in July the weekend of July 18th we will be bringing 500 athletes to Durham to compete in the regionals which is a major league program and the first time major league will host a tournament in North Carolina and Durham was selected we have a hundred percent of our kids there in school we have no dropouts we have we're like the parents we're like family to the kids we push education and make sure that they understand that they can go to college and quite a few of our kids go to college I had 23 young men on the A honor row so I'm so proud and I want Durham to come out and please support this program when the regionals come in town our opening day will be May 28th at the Durham Bulls athletic park the old Durham Bulls park mission is always free thank you everybody we appreciate it all right we had a lot of good ceremonial items tonight more than usual but fortunately we don't have a very long agenda so that's a good thing we'll now proceed to announcements by members of the council any council members have an announcement hearing none I'll ask I'm sorry I just wanted to take a moment to just congratulate all of our recent investors Supreme Court Justice Anita Earls and also goodness Clayton Jones Dave Parney yeah judges judges and Josephine Davis as well as general assembly and all of those in the general assembly and yes it's been a lot of movement I'm excited about the year ahead thank you any other announcements if not mr manager any priority items thank you mr mayor members of the city council a good evening and on behalf of the city manager's office and all of our employees we too want to extend everyone a happy new year and say that we are looking forward to a great 2019 this evening we do have one priority item which is agenda item number nine uniformed unarmed security guard services for the city's parking facilities this item needs to be referred back to the administration thank you thank you mr manager I will now accept an item I'm gonna accept a motion on the manager's priority item moved second it's been moved and seconded that we refer item nine back to the manager's office madame clerk will you please open the vote please close the vote the motion passes seven zero thank you very much mr attorney do you have any priority items thank you mr mayor members of council I have no priority items for your agenda but would like a moment of personal privilege if I could yes sir for members of the staff that are here and the public we held a special meeting this evening at six o'clock in which we adjourned into a closed session to discuss a personnel matter I was the subject of that personnel matter and I'd like to read into the record a document that I submitted to the city council during that meeting this is a letter addressed to mayor Steve shul copy to council members count the city manager bonfield and city clerk diana schreiber dear steve pursuant to section 13 of my employment contract with the city of Durham please accept this memorandum as my notice of intent to resign my position as city attorney of Durham effective March 8 2019 serving you this and past city councils and administrations as well as all of the past and current residents of the city of Durham over the last 21 years has been the honor of a lifetime on behalf of my wife ran and my children Griffin and Chloe we cannot express enough our appreciation for all the opportunities afforded to us in this amazing community I will have much more to say about my tenure with this organization and community as we get closer to that departure date sincerely Patrick W Baker city attorney a couple things that I didn't include in that note is that for members of the public and staff I have accepted the position as the Charlotte city attorney and we'll be starting my work there on our about March the 11th and I will be using the next 60 days to ensure an absolutely seamless transition with this organization as we move forward I think I've got a great staff of attorneys and look forward to making this transition as smoothly as possible for you thank you Patrick that's not the kind of thing one claps for let's just I just want to say and we'll have many other opportunities to say this on behalf of my colleagues and on behalf of our city staff on behalf of our community that while we recognize this as a tremendous loss for Durham we also want to wish you Godspeed in your new job and we know that you'll do the same fantastic work that you have done here in Durham that you'll be doing in Charlotte but we will miss you terribly not only personally as friends but also for the incredible professional work that you have done in Durham I want to say to the members of the public you may not know this Patrick may be one of the only people in the country who's ever been about the city manager and a city attorney of a city you serve us for 21 years with incredible distinction when you told us Patrick told me recently and council members and then we had a as you said a closed session just earlier today that you were leaving we all felt the same thing which was happiness for you at the same time as a sense of gratitude for your great work here and a sense of loss because we really are going to miss you in every way so just wanted to say that wanted to tell you that we really are rooting for you and your new job and and and when I see the mayor of Charlotte that will be the end of our friendship it's on that I'm gonna I'm gonna ask now if any of my colleagues have any brief remarks they would like to offer we'll have more chances of course to to celebrate you before the before the next two months are over but I do want to say we also should add that we appreciate that you're giving us this two-month transition and the council will be working and has already started thinking about the interim the interim city attorney to be covering your work but we appreciate very much the responsible way in which you're doing this leave taking and we'll just miss you a lot Patrick the whole city thank you colleagues anyone they're going to be nice right now thank you senator all right well we'll have other opportunities to do so and Patrick maybe now we should offer you around anything after this is going to be kind of melodramatic or anticlimactic I think the word is not melodramatic anticlimactic thank you Patrick madam clerk any priority items could we make it an item that he stays I have no items thank you madam clerk we'll now move to the consent agenda the consent agenda can be adopted by the council with a single vote the members of the public or members of the council can pull items from the consent agenda which will then be taken up at the end of the meeting I'm going to read the consent agenda items item one approval of city council minutes item two Durham historic preservation commission appointment item three Bloomberg mayor's challenge grant this item has been pulled by Ms. Victoria Peterson item four elected officials travel authorization expense reimbursement policy item six expansion the environmental affairs board item seven developer agreement option contract for phase two of the willow street apartments the self-help ventures funded DHSC Inc. item eight habitat for humanity of Durham affordable housing project this was also pulled by Ms. Peterson item nine uniform on our security guard services for the city's parking facilities has been referred back to the administration item 10 agreement with the Durham Chapel Hill Carver Metropolitan Planning Organization North Carolina Department of Transportation for the congestion management process web application and grant project ordinance item 11 agreement with the Durham Chapel Hill Carver Metropolitan Planning Organization the North Carolina Department of Transportation for the update of the web-based transportation improvement program TIP and grant project ordinance item 12 bid report November 2018 item 13 hazard mitigation grant program HMGP 4167-0014-R grant project coordinates item 14 hazard mitigation grant project management HG HMGP 4167 of em at number one I will now ask for a motion to approve the consent agenda with the exception of items three, eight, and nine. So moved Mr. Mayor. Been moved and seconded we approve the consent agenda Madam Clerk will you please open the vote please close the vote Motion passes seven zero thank you very much we'll now move to item three Ms. Peterson you have three minutes yes I'm Mrs. Peterson Victoria Peterson first thing that was a little shot to my spirit to hear about our attorney Mr. Attorney Baker leaving he knows I'm going to miss him sorry to see you go I hate to see you go do I need to make a phone call to the Charlotte Mayor but anyway we'll talk about that later I'm very concerned about this amount of dollars a million dollars to help bring about some form a way of transportation I don't see anything and I don't I'm hoping maybe the person will be speaking on this I apologize to light bothers my eyes I don't see anything and I tried to read a little bit about it I don't see a job program connected to this million dollars that's going to be coming into this community to bring about new ways of encouraging people not to drive the vehicles there should be a component here to make sure that our young men and women are going to be employed I was at a county commissioner meeting today 20 million dollars is being appropriate for a project out in the county not one not one dime is being set aside so far these folks have been working on this project for four years nothing is set aside for job development and to make sure that our local men and women are getting jobs in this community and I'm going to tell you why we had another three people that were murdered on New Year's Eve in this community another person shot I'm sorry not New Year's Eve New Year's Day two young folks were shot already and the last five days what is going on in this community these young people need job training if they're not going to go to college they cannot afford to go to community college or vocational some of these dollars should be used for training whoever's going to bring in this program I want to see their office sighted over at the T.G. Jakes the recreation center that sits vacant all day over there until around three o'clock over near the public housing in Maduga Terrace you have a rec center that sits there every day finally somebody has put some kind of a center in there for the kids but that only goes on there for a few hours there's not a GED program thank you Ms. Peterson thank you Ms. Peterson we appreciate it but Mr. Mayor please let me finish saying my thought and I'll sit down Ms. Peterson you finished in one sentence excuse me one sentence talk about the murders just to place in this community this week and what are we going to do about it and how can these dollars bring about some training to get these kids off these streets from shooting and killing one another Ms. Peterson thank you thank you Mr. Mayor just to say for members of the public just so people who are watching understand this is a grant application that we received million dollars from the Bloomberg Foundation in order to to follow up on some great work that we did that our city staff did trying to get people coming downtown in ways that are other than in their cars so that we can change the way in which people travel in Durham that we can encourage people to bike and ride the public transit and walk into downtown instead of driving their cars it's a way to fight climate change it's a way to improve our quality of life it's very important we do have of course many community centers many many community centers throughout the city they're open for our young people we have free programming for our teenagers it's at many of our our community centers every single afternoon and they're serving hundreds of them and we'll continue to do so I'll now accept a motion on item three been moved to second that we approve item three Madam clerk we please open the vote please close the vote motion passes seven zero thank you very much well now we have to item eight Ms. Peterson you again have three minutes here's another program that I do not see anything dealing with economic development and Mr. Mayor I'm sorry when Ms. Weeks was shot the other week by a group of young black men they still have not been taken off the street I have a friend a neighbor at least a sister in my church daughters having some issues with the young man that is threatened to murder them he's damaged two cars we see a four hundred and ninety seven thousand dollars and I think Mr. Johnson is handling this 25 new homes are going to be built in this community and that's awesome and that's great who's going to be doing the work do we have a construction program being done in house and Holton school I know a few years ago we talked about that I don't know if that program has ever got up and started running I see the city manager shaking his head maybe we are doing something we need to make sure that if we're going to be giving tax dollars out for these various programs then we need to make sure that our young people African-American boys and girls are being hired and trained to get these jobs and as far as I know the only program that was going on over at the Holton school a few years ago was a barbecue program to cut hair there's nothing wrong with that but we need to have more than that going on and T. G. Jakes can be used for a GED program it can also be used for a construction program there's nothing going on on my side of town I live in walking distance to McDougal terrace we had killings and shootings going on over in that close to that community and I don't want to just bring up McDougal terrace I can bring up North Carolina Central University they've got issues going over there on that campus the crime is running rapid and the fourth district the fourth district do you know where the police station I mean not the where that satellite station is where the fourth district it's way out there on Alexander Drive do you know how long it takes to get out there to come to my house when I had to call the police of all the gun shooting that went on on New Year's Eve shooting and shooting and shooting it was unbelievable I want you to do something somebody texted me the other day and said did you know that the majority of the city council members now are persons of color I want to know what program are my brothers and sisters putting together on this city council to address the murdering the murdering crime that is going on in our community it's not going on over there thank you miss Peterson thank you miss Peterson I know you want to shut me down mr mayor miss Peterson I don't want to shut you down your three minutes are up oh I we need to do something about the murdering going on in this community particularly with black folks being killed and shot two young folks were shot miss Peterson please say something to do something you have to obey the rules in this this chamber just like everybody else you had your three minutes thank you let me just say nobody cares about what's going on in terms of violence in this community more than the people on this council we think about it every day and we work hard on it there are many ways in which we can fight the violence that goes on our community we have a superb police department under terrific leadership we have we hire the best we train them well and we support them well we'll continue to do that and we also work hard to fight the root causes of violence and one of the ways that we work to fight the root causes of violence is by trying to work on affordable housing to make people who live in communities have a decent safe place to live that's what this item is miss Peterson this is around five hundred thousand dollars to support habitat for humanity for low income people predominantly people of color to become first time home buyers in an affordable way it's a good thing all right i'll accept a motion on item eight so moved second Mr. Mayor before you move forward miss councilman I just want to make sure that we're clear clarifying I think she means Te Grady not T.D. Jakes T.E. Grady T.E. Grady T.A. Grady T.A. Grady T.A. Grady and I just want to acknowledge that I recognize what you're saying as far as programming and I would like to make sure that someone from staff does reach out to miss Peterson because I don't think she knows about a lot of the work that we are doing and I would like to make sure that she's well aware by department thank you thank you I'll accept emotional item eight so moved second Madam clerk please open the vote please close the vote motion passes seven zero thank you I don't believe there's any more business to come before this body and other than saying again godspeed to our city attorney I will declare this meeting adjourned 750 Victoria I think what you


As a new principal of this school, I'm going to implement some new rules. And boy will every student enjoy them. Rule number one, we start school at... whenever a.m. Actually, no. P.M.  You have to show up, though. This is school. It's serious. Rule number two, lunch breaks are whenever you want. I am installing barbecue grills in every classroom. It's gonna be a sausage party. That sounded wrong. Rule number three, you can sit next to whoever you want. I know in most classes, you can already do that. But now, you can sit next to your crush. It's a must, okay? We don't only give knowledge, we also give opportunities. Rule number four, we have exams, but you grade them yourselves. Objectively, please. Your future is literally in your hands. Unless you have no hands, in which case we call it x-hands. The term that I just made up. Easy, funny, think about your future. Rule five, you can bring your own gaming chair. We study better when it's comfortable. Rule number six, don't find excuses to get out of class. Just do it, just get out, it's fine. But stay in school. Rule number seven, your mom. I'm a very funny principal. Rule number eight, joke all the time. I like that. Farting cushion on the teacher's chair. Strawberry jam in the tissues. A kick me sign on the teacher's back. I'm all for it. And if the teacher asks, hey, what's that?  Easy, funny, think about your future. Rule number nine, respect all of your teachers, please. Very important, no insults, no bad words. Don't be mean. The max joke limit is your mom. Easy, funny, think about your future. Rule 10, phones are required. Not allowed, required. Require, choir. Take stories of everything and post it. This way, you share the knowledge to more people. Especially your mom. Easy, funny, think about your future. I think these changes will do us good. What do you think? I think it's good.  Like a normal student. Yes, sir. And regarding my ideas. It would technically qualify as excrement. But thank you. Can I have my chair? And my jacket. And my underwear. And my bra. Thank you. Go back to your class, please. Oh, I got expelled a long time ago. I was just trying to find a new job. No, you have a great future ahead. Really? Yeah, just not here.


चोरी का दोकिर लीरा ती ता ऐ nost alo a2 अधन �見 भित Eyes छग टरी kini aur bandare ka kini और करद ठह को दो हूणर हacle koi तpeak खॉरीब स्थमनी। तpeak खॉरी घीं थ supreme तpeak खॉरी पर करना उस कस जीता विम में. स्थमनी onка दii gurii ूरी । तpeak तpeak 2 i minus 3 j plus 5 k plus 7 equal to 0 right so i can say that the normal for this also will be 2 i minus 3 j plus 5 k or at least a scalar multiple of that correct so i can say that my desired required equation would be r dot 2 i minus 3 j plus 5 k okay equal to some constant which is not 7 in this case so some some value you can write it let's say i call it as you know value l okay now to find this value l only you have been provided that the plane passes through 3 4 minus 1 correct so we can put that over here so instead of r put 3 i plus 4 j minus k dot 2 i minus 3 j plus 5 k equal to 1 okay so just open the dot product over here it'll get 6 minus 12 minus 5 is equal to l is equal to l so i think this gives you minus 11 as your l am i right yes or no back over here so my final equation was down to r dot 2 i minus 3 j plus 5 k equal to minus 11 or plus 11 equal to 0 so this becomes your desired answer so but can we take the normal to be same and not scale up multiple does it matter though if you take it yes i didn't take that r dot only yeah it doesn't matter see why it doesn't matter let me show you how so let us say i had given you r dot let's say 2 lambda i minus 3 lambda j 5 lambda k okay equal to some constant correct yes or no so when you put the point here you end up getting minus 11 lambda is equal to l right correct so when you put this back over here you'll get minus 11 lambda drop lambda from everywhere now you are back to the same equation which i got is it because our direction ratios are infinitely many so yes yes and see normal can be from here normal can be from here normal can be from here normal can be from here any point parallel to each other right so normal doesn't mean it has to pass through the center of a plane there's nothing like center of a plane or something normal is a plane is an infinitely extending geometrical figure so any perpendicular to the normal whether both the normals are parallel to each other it doesn't matter to us yes make sense make sense okay fine so next we are going to talk about one of the very important concepts which is called the concept of line of intersection line line of intersection of two planes in short form I'll refer to it as L O I okay so when two planes when two planes intersect okay when two planes intersect they intersect on a line so this red is line is called the line of intersection this then line is called the line of intersection okay so many a times when we have to mention the equation of a line they will just mention you the equation of the two planes and they say this is the line for example they'll say there's a line given by the equation x minus y plus 2 z equal to 5 and 3x plus y plus z is equal to 6 okay let's say they'll give you like this okay and many people they get surprised they say hey they have given the equation of two planes and they're claiming that it's a line equation yes it is a line equation all they mean to say is that the line is created by the intersection of these two planes are you getting my point so mentioning such equations is called the asymmetric form of the equation of a line this is called the asymmetric form of the equation of a line so whatever we had learned was actually the symmetric form that is x minus x1 by a equal to y minus y1 by b equal to z minus z1 by c but this is called the asymmetric form so don't be surprised in future if you see there's a line equation which is mentioned as the equation of two planes is just another way of writing the equation of a line which is basically passing through the intersection of those two mentioned planes have I made myself clear okay now what type of questions will you get the two types of question which is based on it one is converting the asymmetrical form to symmetrical form that's one type of question and and second type of question is there would be some information about a plane passing through the line of intersection thereby giving it a family of plane concept so we'll talk about the second concept little later on let me first take a question where I have to convert asymmetric form okay let's take this as question itself so this is an asymmetric form of a line tell me the symmetric form for it now since you have not done any question of this type before let me start with this question as a illustration problem so when you want to find the equation of a line what are the two things that you need you need the direction any line you need a point and you need a direction right right without these two things will not be able to get the equation of a line correct now if you want to find a point what do we do is we put any one of the three variables as zero in both the equations okay so let's say I put zero a z as zero in both the equations so put z as zero in both the equations so you'll end up getting x minus y is five and three x plus y is equal to six okay so from here you can find out the value of value of x to be eleven by four okay put it in any one of them let's say I put in the first one so why eleven by four minus y is five so y is equal to minus nine by four okay so we have got a point on this line which is eleven by four minus nine by four and zero now people ask me sir could I could I put y also zero yes you can could I put x also zero yes you can it's your call okay so the point may be different for different different people now here a very important precaution to be exercised is that when you're putting any variable as zero it should not lead to an inconsistent equations per se let me give an example where such thing may arise let's say you had equation x plus y plus 2 z equal to 5 and x plus y minus 3 z equal to 6 right let's say these are the two planes and you decided to put x equal to 0 what will happen it will lead to an inconsistent set of equation isn't it one is saying x plus y is 5 other is saying x plus y is 6 this is not possible you cannot solve this right so refrain from choosing such refrain from choosing such points as zero which will lead to inconsistency in your answer it is just equations way of saying that in on that plane z equal to zero is not possible have I made myself clear yes sir okay second thing is people ask me sir is it necessary to put zero can't I put one or two or something yes you can you have full right to put any value to any point but just that whatever are the other two equations that are coming up should not lead to infinitely many solutions or should not lead to inconsistent solution inconsistent equations okay because we just need one point so here we have got a point so one task is over okay so point is known now how do I get the direction to get the direction it's very obvious that this line of intersection is simultaneously perpendicular to the normal of pi2 and perpendicular to the normal of pi1 isn't it so let's say n1 n2 are the normal vectors I'm sure you would all be able to appreciate that this is also perpendicular and this is also perpendicular so this line will lie on which plane both the planes my dear both the planes pi1 and pi2 it is the line of intersection of both the planes so think as if it is like your you know the corner of your book right and the pages are your planes are you getting it so the line of intersection lies on both the planes it lies on both pi1 and pi2 plane correct and at the same time it is perpendicular to n1 and n2 also do you realize that of course one implies the other if it lies on pi1 then n1 will be perpendicular to the line of intersection right if it lies on pi2 n2 will also be perpendicular to the line of intersection that means n1 n2 both are perpendicular to the line of intersection is that clear this is very important everybody are there are hamsony licketh is that clear yes okay fine so if if I know the normal to both the planes I know n1 n2 vector can I not find out the direction of the line so what is the direction of the line here you will say simple it will be along the direction of n1 cross n2 yes or no any vector which is simultaneously perpendicular to two vectors lies in the direction of their cross product so n1 cross n2 you can find it i j k 1 minus 1 2 3 1 1 okay so this is okay let me expand it so it's becomes minus 3 minus j it becomes minus 5 okay and k will become 4 am I right okay will become a 4 so it's minus 3 i plus 5 j plus 4 k so you can use this minus 3 5 and 4 as your abc of the line so finally concluding your equation of the line will look like this in symmetric form x minus 11 by 4 see 11 by 4 was your point divided by minus 3 is equal to y plus 9 by 4 divided by 5 and z minus 0 by 4 this becomes your equation of a line okay you can want if you want you can write it in a simpler form 4x minus 11 by minus 3 4 y plus 9 by 5 is equal to z minus 0 by 1 okay this is your symmetric form so i'll just repeat the procedure once again what do we do to convert asymmetric form what is an asymmetric form whenever you have been given the equation of a line by mentioning the two planes whose intersection generates that line we call that equation to be a asymmetric form so in order to convert it to symmetric form you need the point and you need the direction of the line to get a point we put one of the variables as 0 1 2 whatever you feel like but it should not make the system of equations inconsistent once you have found out the points now you can find out the direction by taking the cross product of the normal vectors to both the planes and once you know the direction you can always write down the equation of a line does that make sense everyone if that makes sense i will have to give you a question here you go find the angle between the lines now see here there are four planes mentioned in fact there are there are two lines mentioned this is your line number one l1 and this is your line number two l2 right and they're now asking you the angle between these two lines try it out that's correct share anybody else share has already replied guys hope you're not finding the complete equation because i just need the direction ratios of the two lines so don't give me the symmetric form for both the lines that is not required aditya nikhit ardhara hamsini samikta i'm getting the perpendicular let me tell you you are correct aditya okay so all you need to do was get the direction ratios of the l1 line so it's perpendicular to both the planes simultaneously so let's write i j k 1 minus 3 and there's no z over here right so 0 okay and here there's no x so 0 4 minus 1 okay so when you expand it it becomes 3 okay minus j minus 1 and k will give you a 4 so 3 i 3 i plus j and plus 4 k that's the direction ratios you can say 3 1 and 4 so for the direction ratios of the other line l2 again i have to do the same thing i j k components are 1 3 0 and 0 2 minus 1 okay so it's i minus 3 minus j minus 1 and k 2 so it's minus 3 i plus j plus 2 k fine so the direction ratios here are 3 minus 3 1 and 2 so let us find out the angle by using the formula a 1 a 2 b 1 b 2 c 1 c 2 by under root of a 1 square b 1 square c 1 square but let me find the denominator numerator first so a 1 a 2 is minus 9 plus 1 plus 8 that itself becomes a 0 so no need to do any further it implies l 1 and l 2 are perpendicular is that clear this so everyone okay


So this is weird, right? Hulu is on switch. It's been on switch now for a little over a month and I use it I have an active Hulu subscription. I use it quite frequently actually because it's nice having Well, I'm working having Hulu play on something besides my computer But there's still other streaming services that are missing right Netflix Amazon Prime being two of the big ones Some people might want voodoo. I personally would like to see direct TV now come to the platform But Netflix is obviously the most popular one in the world the most popular streaming platform in the world for consumable TV and movie content and It's not coming to switch. Maybe I Customer service on Twitter responded to someone asking specifically about it So the question originally came from at Nintendo screens and it says hey Netflix Is there any word on when Netflix may be launching on Nintendo switch? The demand is high we are eagerly awaiting its launch and Netflix customer service responded with hey there. There are currently no plans for Netflix on Nintendo switch. We appreciate your feedback on it and he like did a Exclamation point at the end and so there's some people say oh you can't listen to Netflix customer service, right? They only know so much. They're not going to be the right people to talk to about this situation But it's really the only people we have to talk to about this situation Netflix should be on switch whether or not you plan to use Netflix or not Or if it's a big deal to you or not It's a big deal to some people that switch can easily run it just like it's running Hulu but to say there's no plans is Baffling there was actually a rumor way back when way back in early 2017 that switch Already had a Netflix app ready to go and Nintendo wasn't letting it launch now We're hearing from someone who at least works at Netflix As as a customer service rep anyways on Twitter saying that no we have no plans to even make a Nintendo switch app well What what is that? Why? This actually brings light to this whole situation of streaming apps on switch Why is Hulu there and why is nobody else there? Why is it just Hulu? And I'm actually starting to wonder if there's an exclusivity contract in place between Hulu and Nintendo let me explain Disney bought out Hulu Disney owns Hulu Disney is actually going to start taking their content and leaving Netflix as of 2019 the contract with Netflix ends at the end of this year and Nintendo Disney's gonna take all of their content and put it on their own platform Well now they own Hulu. It's very likely they're gonna take that content and put it in Hulu and consolidate their streaming services down to one Service Hulu plus all of Disney's shows and movies and all that stuff And that's gonna really entice people to switch over to Hulu who are enjoying getting that content on Netflix It's actually gonna make Hulu a even bigger competitor with Netflix than it already is with their with its original series and all that So it's going to be very interesting to see how that plays out in the space But it also makes me wonder if they also aggressively pursued an Exclusivity contract with Nintendo now. I have no evidence for this This is pure speculation But it's the only thing I could think of on why and a Netflix rep is saying we have no plans to bring Netflix to switch Maybe there's no plans to bring Amazon Prime either because Hulu locked down an exclusivity contract with Nintendo to Eliminate the possibility of competition for their platform once they bring all their Disney stuff over in 2019 It's just a theory I have or if it's true Netflix has zero plans of even making a switch app That tells me that there's obviously something going on behind the scenes assuming we can trust this Twitter customer service rep I know I know a Twitter customer service rep. What do they know? Both they know more than you do they know more than I do because they actually work for Netflix So that's really all I can say about that. I'm just I'm baffled if that's if that's happening How how big of that paycheck would a what a Disney have had to cut Nintendo? And it's really interesting too because Nintendo works directly with Universal Studios So like to have like a competitor with Universal Studios Bio a potential exclusivity contract on switch and why switch and why now is it because switch is blowing up and it's a Tablet so that that just made Disney and Hulu naturally more inclined to maybe get a partnership deal I have no idea, but this is just insane to me that this is happening That that we might not get Netflix on switch basically ever That I mean that's that's what this tells me when I read this I'm like wait a second. We're entering year two of Nintendo switch soon And Netflix still has no plans to release on the switch. No plans to even create an app for the switch What is it? I mean, I guess a lot of us were saying oh the wait for Nintendo's online We're waiting for maybe everything's gonna be behind the paywall Maybe we're just not gonna have it at all And what does this mean for the YouTube app of all things right YouTube? Why can't we have the YouTube app? Well, it offers a paid streaming service, of course and Disney might not want this I know it's all speculation, right? I'm making a lot out of very little information But I'm just trying to wrap my mind around if this is true If it is true that Netflix has no plans to even make an app for switch Something's going on because Netflix as we all know Netflix is on everything everything So for it not to be even planning to release on switch Something's up guys. Something's going on behind the scenes. Anyways, folks. You guys let me know what you think about this potential News down in the comments below I am Nathaniel Rubberdance from Nintendo Prime and if you like this video You know what to do if you dislike the video hit that dislike button Subscribe for more content and if you hit the bell icon after you subscribe you'll get notifications for every video We upload every live stream we do and you know what folks I Will just catch you in the next one


Alright, hi everyone. My name is Seren Bagdasarian and I'll be presenting with Kent Overstreet who is calling in Kent. Can you hear us? Hello. Alright. Okay, we can hear you too. So we will talk about memory allocation profiling today, and Mike, I promise I'll write a documentation for it if it goes anywhere. So I'll try to go quickly over the slides and then we can have a discussion. So why we are doing it? We want to account all kernel allocations including early allocations, allocations from modules. And usage examples could be memory detection, some monitoring of the usage, identifying regressions, and possibly other usages. So requirements that we have is very low overhead so that we can enable this in production. That's one of the requirements. Because this is not a debug feature. We want to be able to turn it always on. And the second one is to provide enough information to be useful. We want information to be actionable. So it's hard to satisfy both. That's why we came up with two-level solution. Basically one provides you always on high-level visibility of things that's happening but with very low detail. And the second one is detailed view where you can say, oh, this allocation looks suspicious. Let me dig it into it. So I enable the context capture for that particular location and we get much more information like call stacks for each allocation, PID, timestamp, and so on. So implementation-wise we came up with this code tagging framework. So it's code tagging is a mechanism to inject a structure which identifies a code location. And based on your application and memory profiling is one of such applications, you can attach to each code tag additional field or structure. So in this case we are attaching a counter. We'll be counting how many bytes were allocated from this particular code location. There are other applications. We showed that in the original RFC. We implemented dynamic fault injection, latency tracking, improved error codes. And using this basically it provides us with a low overhead solution and we can attach custom logic and data based on the application. So this is basically the most intrusive part. That's why we are highlighting it here. How it works? We have to wrap the calls which we want to instrument with this macro, basically, a hook. And what that hook does is basically it creates a code tag. This is the first line here in specific alloc tags elf section. Then it stores that code tag in the test tracks additional fields that we created. It calls allocator and then it restores previously set field in that test track. So this way we can support nesting. So what allocator does internally, there is a code to alloc tag ink and deck. So during the allocation it will increment the code tag for that saved in that test track. And it will also store reference to that code tag in this page extension or slab option extension depending on which object it is. So that when we freeze the object, we know which code tag needs to be decremented. So, overhead. Performance overhead, thanks to this basically mechanism we get quite low performance overhead for slab 36. For page allocation it's 26%. It sounds high but those paths are very, very highly optimized so they are very quick. So even adding per CPU increment decrement operations result in pretty high overhead. Well, visible overhead but if we compare with other mechanisms like MMCG, it's 10 times faster than slab and 5 times faster than page allocation. MMCG for page allocations. And memory overhead, I just did a rough estimate. Basically it will depend on number of CPUs because we are using per CPU counters for every code tag. And it also depends on number of allocation sites of course because every allocation site is instrumented. So a rough estimate on 8GB 8-core Android device with assuming 10,000 allocation sites which is overestimation. On my Fedora machine I saw that it's 4,800 something allocation sites so 10,000 is pretty high. So we come up to about 26, 27, actually around 27 MB of overhead which is 0.3% of total memory. I'm sure we can improve this. We just didn't spend too much time optimizing the size of those things. So that's pretty much overview of what we are doing and I would like to open it for discussion. What we are interested in getting is a feedback on generally usefulness. Like if you had this mechanism today, would you use it? How would you use it? We would love to hear any additional use cases that we might have missed. We would like to talk about the concerns, maintenance costs, runtime overhead, memory overhead, maybe some other concerns. And I know there are some other great ideas too. We would like to talk about those too. Now is it done? Okay. I can't. So Michele came to me and he asked me on Monday if it's possible to use static calls to do this. Now I guess the issue that we have that I've read on the mailing lists is the fact that doing... If you go back to the code, doing this is kind of like adding basically a bunch of macros around all the interfaces so we have to make sure that every interface has this macro and it could, you know, every time you add a new interface or whatever that, you have to put these things in to make this. And what happens is this code now gets injected into all the call sites. So basically every single call site has this code embedded in there. And there's a few issues. Cache, maybe one of the problems could be, you know, when it's enabled or even it's disabled or wherever you want, you have this code is executed. You can't turn it on or off for anything. It will bloat the instruction cache and such not. And so I, when Michele said is there a way to do static calls. If you're not familiar with static calls, what it does is I mean Tracy uses this. It's basically a way you have a call that you actually does a lot of runtime patching to make it call something different. So you actually can call different things. A lot of things have been using it like, you know, KVM has been using it to like, it boots up and says, oh, this is AMD. It does all the call sites to be a direct call to the AMD code. It's Intel does Intel. It's basically a way to not do indirect calls. So when I was thinking about this, I got up like there's a way of doing this using Obstool. Obstool executes at compile time and it could read in the call locations. And we actually find using the reloc tables and elf finding every single place that calls like, let's just say Kmalik. So I could find every single thing that calls Kmalik. And then what we could do is create a trampoline for every single call. So you'll get a section that creates a little bit code and the trampoline not will actually add the code here. A call to Kmalik and the code back. Now what's the call to Kmalik will be replaced with a jump. It will jump to the trampoline, do this work, call Kmalik, Kmalik comes back and then jumps back. And inside the trampoline you can put your tag, you can hard code the tag and hard code everything else. It's almost identical to what this is except it's going to be a little bit more work that you have to make the trampolines. And actually the added benefit, you could technically turn it on and off at runtime.  And yes. I'd like to jump in. I'd like to see maybe a more concrete proposal on the list, but my reaction when I heard this was that this is taking one set of somewhat magic things as we call macros and replacing with a mechanism that's even more magic in black box. We do this all the time. This is how F trace works. I know. This is how static calls work. This is how static branches work. And it's optimized. And it's also the fact that it could be on and off. And the one thing that's great about this, I really like about this, I think the memory management people like about it, they don't need to worry about it. It basically, yes. It's not going to make the maintenance burden go away. And there's advantages to having the actual source code and attention. Okay, wait, wait, how would it not take the way the maintenance burden Steve Steve. Can you not talk over me so much. Can you not try to take over our presentation. It would not. There's really value to the source code annotations. It's not just a game log. For example, that we need instruments. It's, it's used to be the choice for the programmer that's working on the code, which function in the call stack is the one that gets instrumented. For example, and file system code f s I know dot C as a thin wrapper around an allocation. This makes it a two line source code change to move the accounting to the correct location. I think the hooks be documented in the code. This is a documentation feature. This isn't a bad thing or maintenance burden. This is this is a good thing. If we could jump to the next slide to there's also another whole code tagging. The last slide. The next thing to do with the outlook hooks macro. Yeah, the outlook hooks macro isn't just for accounting. We've got better fault injection in the pipeline to and better fault injection. Speaking as a file system developer is something that we really need for better code coverage and our testing and whole host of reasons and right now the code coverage or sorry the fault injection capabilities that we've got are not ergonomic. This outlook hooks macro, it is a two line change to make every single memory allocation in the kernel, a fault injection point which means that we can write tests that trivially iterate through every memory allocation and just inject a fault run a test, verify that the fault was hit. So there's additional value to this. And your proposal you guys just came up with it. What last night, and I encourage you guys to explore it. The list. Sure. Okay, so I'll tell you this first of all everything you said can still be done in the in the trampoline added benefit is we actually extended in fact actually I would love to have this as a generic feature that you can actually attach to any call site. Do analysis, not just MM, but you like said file systems, scheduling anything. So if we could make this generic and actually like said you don't have to write macros all over the place to add it you just say you just what's wrong with macros because you have to then actually write the macros over the the function so if you have a function that doesn't it's not in it's going to header file once and you're done. Yeah, but why that means. Okay, I could actually anyone could say hey, I just want to use a lot easier. So okay, can please don't talk over me now. So the point I'm trying to say is you could then have like even a user interface like I said this could be enabled at runtime. That the macros cannot be done. I could say I want to instrument these functions. I can actually do something where I can now is if I have the analysis already I can actually do it so I can have this done and I can enable it at runtime and stable it at runtime with no when it's off is no overhead. There's no I cash pressure. It only happens when you have it enabled. We even hook BPF into this. And do your fault and then do fault injection that way. Needs the enable that boot time. There's no use switching it on and off at runtime because then your counters are along. And we've got the boot switch now. If you just care about babies. Well, we do a reset then but that's that's what I'm just saying to go and they've said you could, you know, push where you want but I'm just saying that this kind of came from some of the memory management people that asked me this about this and I said here's the solution. I think it would work. I understand. So that's all I have to say. Thank you. Let's open it up for us through any other comments ideas.  Right.  Yeah, we do have a kill switch right now. At runtime as well. I admit that my latest shiny new toy is is BPF trace. So I'm, I'm very much persuaded by that whole mindset and that's where Steve is taking us. Yeah. But I mean that feature of you have this thing that it's slow but it gives you critical stuff that you must have except that when you don't want to look at that critical stuff you need to run fast. It's a pretty good argument. It's inherently not possible to enable accounting at one time and then have counters that mean anything. The memory for counters can be allocated why it's not why it's inherently not possible. Because you miss some of the allocations already then freeze come and they don't see those allocations. So it's basically the same problem like if you didn't catch the allocation that boot time you basically don't want to see them. If you disabled enabled whatever happened between that you lost right. So it's not going to be inherently is not going to be correct anymore. Not perfect. Yes, I understand that you don't you won't have allocations between like when it's when the feature is disabled that but I mean that's reasonable assumption that yes counters are not incremented when the feature is disabled. And that when you enable it your counter start from zero and you get the statistics from like from the time when you enabled it. I guess it becomes it just becomes less useful. One one thing that also like so basically you have it boot up enabled do all your counting.  So that's the one thing is you don't have to reboot you can just shut it off and then you don't yes once you turn it on will be an issue. So having it on a boot up and then be able to disable it without having to reboot and then having full 100% speed again that we can do with our approach. No you can't because this is still I cash this is still in the code path. How do you ignore how do you know where these stuff it adds to two instructions to the the allocation pass. It's still going to have a slate instructions. The other thing that the approach that I'm proposing also gives you is the fact that let's say you want to extend it maybe you want to do a little bit more than just counting maybe you want to do something else. That doesn't mean like I said let me finish. So say if you want to do something else besides just accounting say if you have another extension maybe you want to put the BPF programs on there. You could actually have if you have the support in the kernel where you have multiple trampolines where you do the things that have to be on all the time so you don't miss it but say if you want to do some other type of profiling. You can actually change all the call sites to point to the other trampoline. Let me just slow down a little bit. I would like to respond to something I said earlier. You keep dumping a lot once and I can't keep track of it all. What was I going to say? You're talking about overhead. The overhead that our approach as we have to weigh the pros and cons of both approaches and the con of your approach though is that the trampoline. The trampoline is much higher overhead than our approach when it actually is in use. Significantly higher. Wait when it's in use you said? Yeah. Have you done the measurement? What other function call? No there is no function call. It's a jump. It's a direct jump to the trampoline and the trampoline does the call and then it's a direct jump back because there's a single trampoline for every single call site. So you hard code where you return. We can do that with static keys. We do that with static keys. But no if you put but no you have you're going to have instructions in there. This fact is that inside the code where all the call sites are it's compiled with the call you just replace the call to a jump. But if that's all you're doing the size and ops slats when this is disabled that's going to be bigger than the move instructions that we add for just stashing the pointer to the code tab. That's all we're adding. Wait what? I didn't I don't understand that. For a trampoline you have to have space in the code to add your jump structure later right? To add some help. It's the trampoline will be in its own section. To get to the trampoline you have to be able to insert a jump instruction to insert that junction structure. The call itself is replaced with a jump. So we replace the at build time we replace the calls with jumps to the trampoline. Because it's because each trampoline is it's basically emulating what you did but instead of having the call there we just move a jump to the code and then jump back. Or like you know GCC actually compile it that way.  But no it's just basically moving this code out of line that's all it's doing. So instead of doing the call from the call site you do the call from the trampoline. And you replace the jump or the call with a jump to the trampoline it does. This is getting really far off into the weeds. I just want to add something that is about 80 percent overlap here. But I was playing around with BPF Trace and I on a you know a live system that was already up and running that I wasn't supposed to reboot or anything. And the big the big thing that really hit me was all the static functions. I don't really mean static I mean inlined functions in the kernel effectively turns out to be the same thing. And so you know if you can grab a file and recompile it so the functions aren't static then all of a sudden they become magically available to to BPF Trace. And so then I started putting around you know what's the best way to address this in the current way is well you'd write in trace points. So when when I saw this on the screen I kind of lit up and I thought oh my gosh if they're going to put all this in the in the code in some form. Then all of a sudden a whole bunch more functions are going to are going to light up and be visible to BPF Trace because somebody's going to go in and say well this is I need this visible I need that visible. Now how this fits in is if you if you take this approach and then modify it with Stevens approach then then I get what I want as well which is all of a sudden. You can do all above because these annotation sites double as additional traceable sites which were some of which were static functions before and were invisible. I'm not at all following how that's relevant to what we're doing to be honest. So the overlap that I see is that this is all about saying I have a running kernel and I need to know more about it. And that's precisely what the BPF Trace problem is trying to do and BPF Trace is falling short. And so this this helps with that. And if you merge the two then you get a nice extra little boost. You're doing the same thing but you're enhancing both tracing and you know this. Maybe I'm not familiar enough with what problems you're trying to solve with BPF Trace. Oh OK well I had a kernel hang and you know the code goes in and it doesn't come out and everything's running and you know the question is well where. And you can start off with CSRQ and it tells you what the backtrace is and then you say well that's nice but whoever wrote this code has many many layers of functions. And they've nested all the way down and you'll never be able to figure it out. It's kind of like saying OK where's the memory like oh well it's in K Malik right. You need to know what happened.  And then BPF Trace lit up and showed me where it was. So then I immediately said well hey guys can I take your kernel driver and they said no. Sounds like something holy BPF specific. This is not something that I personally run into looking at backtraces standard kernel backtrace functionality candle static versus non-static is fine. That's why I piped up just to point out that it can happen. And BPF is very good at helping solve that kind of thing. The implementation is also really fantastic and I think again combining them is going to lead to goodness. Steve kind of answered my I was concerned about kernel core size like the size of the kernel is important and people turning on config options to make the kernel smaller and stuff. So the chances of this all the stuff being useful whatever the approach might be. We should consider kernel core size. Yeah but basically what I said was that both approaches are the same of code size. Yeah the code size otherwise they are same. There was a config to disable it completely so compile it out. For people who cannot tolerate you know increased size they can just enable it. Any other questions comments ideas. Okay so my one comment is that whatever approach is going to be used. Please make it possible to free the memory for the counters. So it looks like you use page X right and that's not freeable. So if it was possible to use or something. I think it's freeable if there is page extension have page x ops which have the need function. It does but I think it's only called your boot when it's. Yeah yeah yeah you need to enable it as a boot. Yeah you need to disable the boot. Yeah I'll think about it but I don't see a direct way to do it right now. So like you put a system just look at the stats and then you disable this feature and free the memory then this would be quite useful I think. Another thing that we could do to free memory that we're not doing yet is those old sections could be free the same way that in it sections get freed after boot. Yeah those sections are not that big though. If you look at the breakup. If we did that though then essentially all the overhead would be gone if it was put off. The biggest sections are page extension slab extensions basically everything. Yeah but those won't be getting allocated if it's disabled at the time. Yeah I think the question is asked is to do it at runtime basically once you don't need it you want to disable it so it's not. And another thing is if we do like the approach I said with the trampolines you could actually free it. So basically you could boot up with it all running and then free it. Yeah that's what I just said. Well no I'm saying. Well wait which well I'm saying now well the actual like the injection sites. Oh oh oh you mean the sections. Yeah they are not that big. Yeah they are like 900k with perceived use and 312k. So the bulk of this comes from the back pointers basically because you have to have back pointer for every page for every slab allocation. Oh I see. Yeah like we said page X cannot be freed today but I don't ignorance anything fundamental preventing to implementing the freeing. Sure. And document that. Mike thinks it's not that simple. If it gets allocated late enough to be located with Vmalloc you can free it but if it's allocated at boot with memblock we don't really have something that freees memblock allocations afterwards. We do that with huge TLB. We unreserve it. So there is no common infrastructure. Huge TLB does it. I think CMA doesn't do it. So huge TLB does it in a way. But there is nothing like common API you'd need to generalize it probably. But is there anything preventing creating that API and the common create. So in the future we could free it then. And then of course the next question is. You can free page X if you are the only user of the page X but if there are other then you can't. I think that this is not really important at this stage because yeah I mean it would be really nice to have it freeable but that can come up later. As long as you just have that feature as an opt-in so that you just enable that one you really want to use that. Fine that's not a problem. And regardless of what kind of solution that will be you need some metadata to track whatever you need. So I think that discussion is not really the most important at this stage. I think that it's probably much more important to decide whether we really want to hard code what we are tracking or have something more dynamic. Is it boot time opt-in right now? The overhead is all boot time opt-in. There is a config option to compile it out. There is a boot time option to enable and disable it. Also another note on page X is that we are considering moving it from page X to struct page itself because actually using page X has quite a bit more memory overhead than having it in struct page. Is it a separate allocation that's not otherwise done? No, no, no, no, no, no. I'm just repeating what a general consensus in the room. No, extending struct page is hard stop. I can't. Please no. Just where the overhead is coming? I recently fixed the problem in page X where the flex which is like if users don't use the flex which was always built into the page X is not needed, then it's removed. So you should have no overhead if you don't use the flex. I think Kent is talking about the runtime overhead for lookup page X. The performance overhead. Okay, not the memory overhead. Possibly I was wrong about that. Anyways, it's not something that I'm pointed to either way. That's a discussion that's been ongoing on the list. I guess it's impossible if you extend struct page to make it build time option because that would be just a compile time option then. That's what we were thinking as an option. The use case that I'm interested in hearing about is if I've got a gradual memory leak. I guess the use case I see it abroad a lot is I'll find a subset of machines on a new kernel that'll be leaking memory slowly. And I don't really care about totals or comprehensive view of the system. I just want to see I want to have sort of zero overhead memory or CPU until I notice something's wrong. And then turn on some piece of magic, maybe this, but then I can use to get traces about never freed allocations after that point. Right. And I'm willing to leak. I don't know if this offers that capability or not, but that would be cute. Right. The idea is you enable this minimum information basically, which tells you just at this, in this file at this location, this is the memory allocation. So you collect that data. You can have like a user space demon that collects that data and sees that there was a gradual increase. And once you decide that, yeah, can I jump in here too? We also added this patch set and additional information to show a member report. This will grab the top 10 allocations and add them to the show member report. So if you own, if you've had that leak, you'll see it there. And I've already had this in the V cash registry and it's shockingly useful. Sure. But I assume these are all turn it on and boot and wait for trouble modes. I'm assuming I'm thinking I don't want to turn it on. I don't want to turn it on until the counters that are already in the kernel show I have trouble. So you want to have it off until. There's playing crown is today that tell me everything's fine. And then every once in a while, I'll see, oh, the slab counters are growing out of control. Gee, where are they being allocated from? Let's call Kent concern and make more tracing more invisibility happen for those for those call sites, which I can't identify. So, no, you have to have the accounting off from the start in order for the accounting to be able to tell you anything. Okay, well, that's I guess my dream then in this maybe aren't going to line up together. Yeah, I mean, we all wish for zero overhead. Visibility, but But I guess if I'm willing to if I'm willing if this could be turned on dynamically after I could have it. If I can interrupt there, there is something already. It's not a possibility. There's a BPF code. It's called BCC, which is, you know, compiled BPF tools that somebody's already written some called memory. It does that. And of course, since it's tracing, it's you can turn it on when you need it and then turn it off when you're done. And it will give you a back trace of whatever it sees leaking, you know, starting starting when you did it. It's just it's in the it's already in the BCC distribution. Would you enable it in production? Yeah, I mean, if you've got a problem, you would turn it on at that point. You need to identify that you have a problem right first. The use case I heard here was that somebody says, Oh, okay, I noticed I have a problem. Now I want to turn on the tools. This addresses that, which brings me back. I'm sorry, it brings me back to my interest in doing something like this to add more points that are visible to the BPF system. Your annotation here would add more points. But I think the existing kernel as, as it stands, plus the mem leak tool written in BPF that already is there will solve the case that I just heard. It will solve the case if you can reproduce the leak. Well, that's what he just said. Right. Yeah, I can, I can reproduce the leak. I just don't, I just don't know which allocation site is leaking. Oh, okay. Yeah, that's an easier problem in that case. You don't need it to be enabled from the get go. Where to, I'm not at least, well, the problem that I'm trying to solve is when there is a leak somewhere in the field, I receive a bug report that there is a leak and I cannot reproduce because it happens once in a while. There are some preconditions which I don't know and I don't have enough information to track it down. All right. Yeah, sorry, we're out of time. Thank you very much, everyone. And we'll continue with that. Thank you all.