And joining us now to talk about your health is Dr. Dewey Katesa, an obstetrician, gynecologist at the University of Maryland Medical Center and assistant professor of medicine at the University of Maryland School of Medicine. Doctor, thank you for joining us. Thank you for having me. Maternal mortality, tough topic, got a lot worse during the pandemic. Why was that? Yeah. So I think there's several factors. One is COVID-19. So just as we saw that many people in the United States were affected by COVID-19, pregnant women were not immune to that either. Part of the issue also why it was worse in pregnancy and exacerbated maternal mortality is just some of the changes that happen in pregnancy that make women more susceptible to having more severe disease and more likely to be hospitalized. And that contributed partially to the rate of maternal mortality increasing since the pandemic started. Apart from COVID, what are the top reasons that someone would die near or during a delivery? Yeah. So the kind of top reasons for maternal mortality in the United States, one is cardiovascular disease, namely high blood pressure or hypertension, severe infection or sepsis. And lastly, another major cause is hemorrhage or postpartum hemorrhage. In addition to that, I think we also have to talk about health disparities. Black women are almost three times more likely to die in pregnancy and around pregnancy in the United States. So that's a contributing factor as well. It is black maternal health week. What are the factors that go into that? I mean, that's an incredible disparity. It's not like it's 10% higher or 20%. It's a factor of 100% or 200% higher. Yeah. It's a significant disparity. And one is access to care, but that doesn't really answer really the full reasons for why. So access to care is an issue, but that doesn't explain it because even for black women who have a college degree or higher, their rate of maternal mortality is higher than white women with a high school degree. So other factors include structural racism, implicit bias among health care providers. So these are other factors that contribute to the disparity in maternal mortality. Implicit bias among health care providers meaning a lack of attentiveness, maybe. Somebody's exhibiting symptoms and the provider somehow isn't as tuned in. Right. So just by nature of being human beings, we all have implicit bias. But implicit bias impacts some groups more than others. And so for black people and black women in particular in this case, implicit bias is a major factor. And part of it has to do with stereotypes. Some of these stereotypes stem all the way back from slavery that stereotypes because black women during slavery were disproportionately forced into childbearing. They were forced into harsh conditions working in the fields. They had higher rates of pregnancy loss. They weren't able to take care of their children. And that kind of directly links to some of the stereotypes that exist of black women today, that they are hyperfertile, that they don't want to take care of their children, that they experience pain less than white women do. And all of these are contributing factors into implicit bias as to how black women are treated and their symptoms may not be listened to or heard or addressed sometimes. Within your practice. As you're training the next generation of doctors, how do you address those things? I think a big part of it is talking about it. So in my medical training, these weren't things that were discussed as much as they are now. And as you said, I teach at the School of Medicine. And there are sessions with students on health equity or health inequity. There are sessions to discuss these things. And that's something I think we need to continue in all of our medical training and our medical care when we're taking care of patients. When things come up, we need to talk about it. We need to reflect and think about what are our biases. And by starting to do that, then we can work to try and change things and overcome them. If I leap from that to thinking that if I'm a black woman delivering a baby, I want to see a black doctor on the other side. Am I wrong? Yes, that is true. And I've seen that even in my own practice, more black women coming to see me and seeking out black physicians to take care of them. And there is data that shows, not specifically in OB-GYN, but there's data for babies in the NICU that their mortality rates are for black babies. Their mortality rates are lower if they're taken care of by a black physician. There was an interesting study that just came out looking at primary care physicians in different counties in the United States, and that the counties where there were a greater proportion of black physicians. The disparity in life expectancy was less between black and white. And so these are all things that then I think extend probably to other specialties as well. The other thing is more diversity in the physician field, in the healthcare setting. Right now there are about 5% of physicians in the United States are black, whereas 12% of the population is black. And so bringing greater diversity into the pool of doctors in this country also brings more diversity of experience, brings these issues to the table more because they're bringing their lived experience also. So that's important I think as well. Yeah, we know Morgan State University about to open a medical school. And so you work in a highly regarded facility in an urban environment and I'm certain with a with a very diverse staff. Are these things that as a group, you and members of your team have to be conscious of in the practice of medicine? Yes, it's really important to be conscious of these things and to talk about these things. And myself, I'm the director of our department's program on diversity, inclusion and women's empowerment. So it's a big part of what I and my team and the department under our chair work on as well. This week, as you mentioned, is Black Maternal Health Week. And one of the things we did was have a town hall discussion about the state of Black Maternal Health here in Maryland, in Baltimore and in our department to try and have these conversations on a regular basis and address these issues. Anything surprise you in that conversation? Any any points brought up that you might not have expected? I think the point that I think was really that made me feel good was people express how much they were happy that we had that discussion and that they wanted to have more discussions like that. And that was really that was really I was really glad to see that. How much is access to care a factor in pregnancies going going badly? I think about a couple of things. I mean, we hear about food deserts. You can live in a section of town where there just aren't good grocery stores. Maybe there's not good primary care either. And also when somebody winds up maybe without a lot of advanced care in labor and you wind up in a situation where maybe you don't have insurance and maybe as a group or those people discriminated against as well. Yeah, I look at access to care in different ways. One is access to like insurance or access to be able to get to a hospital, which here in Baltimore, we have a lot of hospitals physically like structures in other parts of the country that's not necessarily the case. And in many places, hospitals are closing due to lack of resources funding. I mean, Indian reservations prime example. Absolutely. And in many rural areas in the south, but access to care, you can think about in other ways, too. You mentioned food deserts. But part of it is are people working jobs that don't allow them to take time off of work to go to doctor's appointments? Do people are people having issues with transportation? And that makes it difficult for them to make it to doctor's appointments. I think often patients, people want to get care and they want to have good health. But there are lots of other factors related to socioeconomic status that can negatively impact that. I bet if you if you ask the next 10 people you see on the street, how how does the United States do compared to other countries in the safety of labor and delivery of maternal mortality? Everybody would think we're at the top or darn close to it. And that's not true either. Yes, sadly, that's not true. And the United States has the highest rates of maternal mortality when you compare to other high income countries. So sadly, that's not the case here. Similar factors to the national problem that we have. Yes, I think that is similar factors to the national problem that we have. You know, in other countries, the health care system and health care is supported by there's universal health care. So and it's structured in a way that primary care is emphasized. And that's not as much how our system is emphasized. There's probably there's a lot of factors, but that's just one. And the disparities that we're talking about when it comes to maternal care aren't limited to maternal care. I mean, this happens in plenty of other fields as a as a medical profession, which is getting more diverse. Is there anything else we could be doing? You think about the standard of care in medicine, you want the standard of care. Why do we fall short in in some cases within your field and beyond? I think a big part of it is, you know, we're having not as many physicians going into primary care. And if you look at other countries, there's a very much a bigger emphasis on primary care here. It's not reimbursed as much. It's not paid as well. So people are less likely to go into it. But a strong primary care system is really what helps in preventing disease complications. Lastly, anybody's watching who is fortunate to be expecting a baby, maybe expecting a grandparent, what should they know? Within the black community and beyond about doing all the right things to give the young mother and the young baby the best chance. Yeah, I think if you're thinking of becoming pregnant, going to see your OBGYN even before you start to try to get pregnant to make sure if you have any medical problems that those are well controlled. If you are pregnant, seeking care early is really important to mitigate any sort of complications that might happen. Still getting vaccinated for COVID-19 is still really important. As I said, pregnant women are more likely to have severe illness and hospitalization and other complications. And then I think particularly for black women and all women, but particularly black women, because of the disparity, it's important to seek out a provider that you feel comfortable with, that you feel like is listening to your concerns, is answering your questions and is making you feel comfortable and positive about the experience that you're having. You can find Dr. Doe Katesa and her team at the University of Maryland Medical Center. Dr. Thank you so much for being here. Thank you so much for having me. Your health segments are a co-production of Maryland Public Television and the University of Maryland Medical System.


Hello, my name is Joe Lowe. I'm the Division Director for the South Dakota Division of Wildland Fire Suppression. In this video, you will be learning about the tactics meeting, the planning meeting, and the operations briefing. The planning process provides the following benefits. It enhances safety, it clarifies roles, it communicates the objectives of the incident commander, it provides a base against which progress can be measured, it solves problems during the planning process, problems are identified and solved, it allows for predictions and forecasting, and above all, it builds stronger teams. Let's take a look at the ICS forums used in the tactics meeting. The purpose of the ICS forum 215 operations planning worksheet is to communicate the decisions made during the planning meeting concerning resource assignments to the resource unit. The worksheet is used by the resource unit to complete assignment lists and by the logistic section for ordering resources for the incident. The information entered on the forum by the operations section chief is later used on the ICS 204 forum. We will now give you instruction on completing an ICS 215 operational planning worksheet. In box one, print the name assigned to the incident. In box two, enter the date and time prepared. In box three, enter the time interval for which the information applies, and record the start and end date and time for the operational period. In box four, enter the division, letter, or location of the work assignment for the resource. In box six, five, enter the specific work assignments given to each of the divisions. In box six, we are going to record resources. First, complete the resource headings, both the kind and type appropriate for the incident. Enter for the appropriate resources the number of resources by type and the number of resources available. Then record the number of resources needed. In box seven, enter the specific location the needed resources are to report for the work assignments. In box eight, request the time of arrival. In box nine, enter the total number of resources by type required on hand and ordered. In box ten, record the name and position for the person completing the film. The purpose of the ICS Form 215A, Incident Safety Analysis, is to identify and mitigate any safety issues identified in the planning meeting. This form is filled out by the incident safety office. We will now give you instruction on how to fill out an incident safety analysis. In box one, list the incident name. Box two, the date. Box three, the time. The bottom of the form is pretty self-explanatory. The bottom of the form is used to identify safety risks and the mitigation for the identified risk. Realize that individual management teams conduct their meetings with subtle differences. Guidance is furnished in your course materials as to the essential topics to be covered in each meeting. Let's take a look at those involved in an actual tactics meeting and have them tell you what the responsibility is. I'm Steve Hosneral. I'm the planning section chief. I'm responsible for facilitating the tactics meeting. I ensure that all required functions are present and that all the information captured on the organizational planning worksheet, the 215A, and the incident safety analysis, the 215A, is accurate and complete because that information is vital for completion of the incident action plan, the IAP, for the next operational period. The operation section chief plays a key role at this meeting. So let's talk to an operation section chief and see what he does. I'm the operation section chief. The operation section chief plays a major role in the tactics meeting. Prior to the meeting, I gather information from the division group supervisors and the branch directors. I use that information to formulate the tactics that will be needed on each division and group in the next operational period. Then I come into the meeting with that information and fill out a form called the ICS Form 215. The ICS Form 215 is called the operational planning worksheet. The second step in the tactics meeting then is to meet with the safety officer. The operations and the safety officer then communicate back and forth in a direct fashion in order to identify and mitigate any safety hazards. They do that communication process by filling out a form called the ICS Form 215A. Then lastly to conclude the tactics meeting, the final step is to make sure that the operation section chief is communicating too with the logistics section chief and the planning section chief in order to make sure that all functions can support the plan as planned for the next operational period. The resource unit leader is also important. Let's find out what that person is responsible for. Hello I'm the resource unit leader. I work in the planning section. My function at the tactics meeting is to work with the operation section chief on the ICS 215 operational planning worksheet. I gather information on required resources for the incident and reconcile resource orders to be sure all equipment and personnel are available for the next operational shift. Safety is always the first priority on an incident. Let's find out what the role of the safety officer is in this meeting. My name is Gail Geyer and I'm this incident safety officer. My role in the tactics meeting is to basically monitor the operations section chief and their planning process or the 215 process. What I do is I make sure that their tactics are sound and that all safety hazards can be mitigated. I work with them and we try to make sure that the operations plan for the next operational period is done safely and it also accomplishes the goals that they want to accomplish. During that process I develop the incident risk analysis and identify hazards that will occur during that operational period and then I go and assist them in making the plan work. The logistics section chief's function at the tactics meeting is as follows. Personnel and logistical support factors must be considered in determining tactical operations. Lack of logistical support can mean the difference between success and failure. If the required tactical resources will not be available then an adjustment should be made to the tactics and operations being planned for the operational period. Lack of available resources could require a reassessment of tactics and perhaps the overall strategy. You have now seen a tactics meeting. Take a minute to review with your groups what you've seen in this video. We have seen how a tactics meeting is conducted. The next meeting is the planning meeting. This is where the plan is ratified. Welcome to the 1400 planning meeting. I'm the planning section chief. Reminder if you could turn your radios down. Cell phones off please. We'll start with incident objectives. They're posted up here on the board. They haven't changed. We'll start with incident situation. Field operations section chief. Good afternoon.  We've got the dozer line in place. Crews are continuing to mop up and then prove up to drop for the division break in bravo. Vision Bravo the line is in place for the most part but we're continuing to do some burnout as we have a lot of unburned fuel between the fire line and the fire itself. Division Charlie same thing. We're bringing our dozer line down from the division break trying to marry up with division bravo. Coming around into division Yankee this line is in and crews are patrolling and mopping up 100 foot in along the existing forest service roads and coming around into division Zulu. This is looking real good and we're basically patrolling and mopping up 100 foot in there also. Weather incident meteorologist. Good afternoon the predicted fire weather for tomorrow. We'll start out with partly to mostly sunny skies in the morning and then a chance for thunderstorms in the afternoon and those will be the scattered variety. The winds will be northeast tomorrow and then as the day goes on they're going to switch into the southeast at five to 15 miles per hour in the afternoon. Max temps tomorrow will be 87 to 90. Minimum RH 30% and that should occur between 1 and 2pm. Chance precipitation is 30%. Chance of wetting rain will be right around 10% and just as a heads up the day after tomorrow we're looking at the potential for red flag conditions with hotter drier windier weather. Any questions? I have one question with regards to the wind shift for tomorrow. Have you pinpointed that time more specifically or? Right now we're looking at the wind shift to begin to occur around 1pm around 1300 and then probably by late afternoon we're looking at around 3pm. We'll pick up that pretty brisk southeast wind at 5 to 15. Thanks. Fire behavior? Fire behavior analyst? Our previous fire behavior during the daytime we looked at the fire has run with the wind and slope mainly to the north with some torching short ground runs and spotting. Overnight mainly confined to surface fire with burnout operation that occurred. There was some isolated torching and resulted in some short range spotting also. The heavy fuels are very dry. Live fuels are drought stressed and they're still going to remain at critical levels. With the topography your steep ground is going to be on the north and the east sides of the fire. What we're looking at overall with the fire is predicted spotting potential is fairly moderate in all the divisions. In your line divisions you've got good opportunity to mop up in alpha, Yankee and Zulu.  Watch for an undetected spot out in this rough country over here though that's going to be your main concerns. Looking at and Bravo and Charlie mainly backing fire behavior a good opportunity to burn out and clean that line up early. Watch for the wind shifts though. Any questions? Division assignments? Planning operations section chief? Thanks a lot. What we've seen coming at us for fire weather and our fire behavior combined with our current fire status out here we've built a pretty good plan to accommodate for tomorrow's day shift. We're looking at again setting up our our divisions, divisions Alpha, Bravo and Charlie to finish constructing our dozer lines and pushing in more safety zones in there for our crews that will be working in there. At the same time as we move through the division Yankee down through division Zulu and we'll pick up some the existing forest service system roads and work our fire line off that. Our plan our plan shows that we're in divisions Alpha, Bravo, Charlie, Yankee and Zulu just right up here on the board. Our big concern right now is ensuring the work rest guidelines with regards to our dozer bosses. We have some couple unfilled orders for dozer bosses out there. We want to make sure that we can get those filled we can keep those dozers going. Both night shift dozers and day shift dozers so that's our big our big concern there is to make sure that we keep our dozers going. We're looking pretty good for other overhead orders that that were coming in there. So looking at looking at the plan I think we've built up a pretty good day shift plan for for tomorrow based on what we've got coming at us for our fire weather. Is there any questions? Air operations, Air Operations Branch Director. Thank you, Rob. Good afternoon. The aircraft status for tomorrow's operational period is that we have we got two heavy air tankers tanker 2-2, tanker 1-6. There'll be a station at Rapid City heavy air tanker base and we have two single-engine air tankers at the Spearfish Airport. There'll be tanker 4-6-1 and tanker 4-6-2. Along with them we have a lead, it'd be lead 8-8, which is stationed at the heavy air tanker base in Rapid City. And also we have two air attacks that will give us continuous coverage over the incident. The first be one Alpha Bravo and six three Foxtrot are the air attacks. The heavy air tankers and the seats are able to fly at 0900 tomorrow morning and the air attacks will be off at 0800 off of Rapid City. We also have one Type 3 helicopter and safety as we discussed earlier. It's a five mic Alpha. It's going to be dedicated also to Medabac. And what we've set up is a helispot here off of Highway 14A and Camp 5 road for a helispot if there's a Medabac needed that that aircraft can come in there and pick pick up whatever's needed needed to be done there. And also for observation flights for IC or for operations we'll do the same. We'll use this H1 helispot right there to get picked up. Also that ship that helicopter is going to be dedicated for water drops also so it'll have a water bucket on it. And the Type 1 helicopter that was requested, I requested it to be a standard category helicopter so it can do water drops. And also if you need to move personnel around the fire as a standard category helicopter it can do that. Logistics as we discussed earlier I moved the helibase to the Spurfish Airport to combine the single engineer tanker operation and the helibase all in one area. And for the making the requests for water bucket drops with the helicopters if the divisions could go through air attack means they're going to be on station to order that aircraft. We have a TFR in place safety it's at five miles and 2008 GL. Any questions? Just one real quick question is that helispot pretty easy to see from the road or is you got it marked pretty well flagged down there or what? Yes sir and we'll have the helispot insignia right here right off there's a you can see there's a two track right here just north of the campground and the helispot insignia will be right there the marking will be there so that you can find that. Okay thank you. Any other questions? Thank you. Just one question as far as a helispot it's right near the highway and I just was wondering is there going to be a lot of usage in that helispot I'm kind of concerned about the public stopping along the highway and problems we might have with that. Good question. Yes I noticed on my way in here to the meeting that there's a barricade right here with a highway patrol trooper on it and as long as that stays in place we shouldn't have any impact there at all but yes it is visible from the highway so that's something that we'll have to keep an eye on and we will have a helicopter crew member there receiving that helicopter to load and unload passengers so it'll be covered there it'll be a manned helispot good sounds good okay any other questions thank you safety officer good afternoon I was out here this morning and got a good look around I think things are really going good in general haven't really seen much as far as uh as any safety concerns out there there's a few things I just want to bring bring towards you a lot of that is on the 215a over here and you guys can take a look at that after the meeting the main concerns out there are snags it's a big issue there's a lot of snags out there and I discuss the situation with ops and I think they're going to mitigate that very well the other situation is communications we've had some issues with communications out there there's a lot of dead zones and we've been talking a little bit with the communications folks and I think they're going to mitigate that and they'll probably talk we got that second repeater in this morning and it's being put up on pillar peak right now and it should be on the 205 this evening good so it'll be operational tomorrow okay so the only concern there would be uh tomorrow we want to make sure that that all the operations people uh check out that communications and make sure that there isn't any additional dead spots that we might have to mitigate and I think that'll take care of that uh the other concern is as ICP is located right across the highway from the fire and there's a lot of uh you know as long as that that roadblock stays in place we'll be okay but if that roadblock's lifted we need to be aware of it and we need to make our people aware of it so that they uh they don't get mixed up with the civilians that are being traveling back and forth across the highway uh the only other can the only other thing I want to bring up is is uh the logistics end of thing camp looks really good but I just did a cursory look through camp and so tomorrow I'll probably doing a full blown uh review of the camp and I don't think we're going to have any problems at all you're doing a great job and we appreciate it thank you logistics section chief as far as logistics just a couple points I know we've got some uh outstanding resource orders but as you all know we're competing against other incidents and we're not high on the priority list I do have one confirmed those are boss should be in by 1600 today for you operations I'll have an update at the 1500 conference call with expanded on the other outstanding resource orders as far as cash items Rocky Mountain cash trucks should be in this night about midnight so if everything goes well we'll have your line orders filled and out there to you about oh 900 tomorrow morning and on the repeater issue uh just a reminder that once we get that repeater up we'll need to come back in and get everybody cloned up in the morning so it may delay the progress for some of your folks in the morning get into the line any questions for logistics yeah I just got one issue as far as water goes do we have plenty of water available for tomorrow on the next day is we got plenty of water gale we've got reefer full of ice a true 40 foot reefer full of ice and uh six pallets of water on hand with standing orders so we should be real good shape as far as our water and our power aid and gatorade type drinks okay good any other questions finance section chief in finance we're doing okay um we've got everything is going really smooth one thing that I want to draw your attention to is to make sure that you guys get your CTRs in a timely fashion another concern that I have and maybe we can just handle this after the meeting but I would like to visit with Laverne about the land and who's owns that property so that we make sure we get the appropriate agreements in place public information officer good afternoon we've had a great deal of interest from the media with this fire so we've had escorts on a daily basis I expect that to continue although we have had some issues and some reports where media has showed up on the line without PPE or being escorted operations if you could let your divisions know to contact me on the radio I'll be monitoring it so we can go out and get them back to camp I've also posted an information officer in the housing project that's located in this area is that they seem to be affected by our fire and they have a great deal interest so they are there answering questions any questions for me liaison officer good afternoon we've only had one problem that I've heard of from our assisting and cooperating agencies and that was an issue with barricades resulted from a communication problem between the highway patrol and the sheriff's department that issue has been resolved and barricades will be manned 24 hours per day any questions agency administrators state of South Dakota thank you just had one question for operations as you're putting the plan together you identified a number of engines are you maximizing the use of local volunteer fire departments for those engines we're trying to in any way shape or possible maximize that use of the local vfds how however we're trying to recognize the fact that there is some initial attack issues going on too we want to hold some engines back for that okay thanks United States Forest Service Jim I just wanted to say thanks for releasing as many resources as you as you could as quick as possible to get our initial attack forces back up we still are trying to track down a couple of dozer bosses for you to help out okay great thanks a lot supported the plan operations yes air operations safety logistics finance public information officer plans will support the plan reminders night operations briefing 1800 next planning meeting we'll be tomorrow morning well 900 we need IAP components at 1900 I see do you support the plan I support closing comments real quick you know I've done a good job so far we have one thing each one of you and your different sections I want you to start looking real hard at the end at your folks and make sure they're compliant with the work rest guidelines and we start moving back to get in compliance okay thank you thanks for your participation in the planning meeting we'll see you at the next one you have just seen a planning meeting please review with your group the material that was presented in the video the last meeting that we will take a look at is an operations briefing let's take a look at one that is now in progress good morning welcome to the 0600 operational briefing I'm the planning section chief please shut off radios and cell phones and we'll get started incident objectives we haven't posted up here in the board they haven't changed since the last operational period we'll start with current situation night operation section chief good morning we had a good shift last night conditions were favorable and going around starting in division alpha we completed our dozer line going up to the bravo break cruiser improving that in division bravo our dozer line was taken off down this drainage and we're bringing fire along with us and continuing to construct dozer line as we still have open fire line in bravo also in charlie our dozer line is coming from the top from the from the north end working towards the charlie bravo break a lot of uncontrolled fire line here crews are are bringing fire with that with the dozers in division yankee this line is is in is complete using existing road systems and crews are mopping up and also in division zulu the road systems for service road systems that we use for a line crews are this is holding well and crews are mopping up 100 feet in fire weather incident meteorologist thank you good morning weather summary for the fire area today expecting sunny conditions this morning becoming partly sunny this afternoon with a chance of afternoon thunderstorms maximum temperature should be about 92 degrees on the fire minimum relative humidity 20 wind northeast this morning five to ten miles per hour becoming southeast at five to ten uh this afternoon with gusty and erratic winds in the vicinity of any thunderstorms probably the precipitation is about 30 this afternoon ains and decks is five um l al is one this morning and then three this afternoon there is red flag a red flag warning in effect for the fire area tomorrow for hot dry and windy conditions any questions thanks fire behavior fire behavior analyst as you heard from the iMET we should have some pretty favorable conditions overall today but watch for the wind shift and erratic winds around the thunderstorms will be a challenging day tomorrow what we've seen on this fire generally has been a potential for strong uphill runs with short crown runs torching spotting during the heat of the day when the slope and the heavy fuels have combined without that combination we've generally seen it remain at the surface our most challenging terrain is on the north and the east sides we've got numerous chutes and steep ground and in the broken topography on the west side there's still some steep areas but it's more of a continuous slope the fuels are very dry the erc's are going to be at 63 today which is above the 90th percentile and please review the pocket card attached in the iap in general what we're looking at is moderate surface fire working its way down the hill by backing and flanking and it should remain within the capability of engines crews and dozers for direct attack in divisions bravo and charlie specifically look at surface fire with moderate rates of spread fire will continue to work its way down towards the control line good opportunity to burn out line early but you need to be done before the afternoon wind shifts and and thunderstorms need to manage your intensity of your burning to reduce the risk of torching and associated spotting in divisions yankee zulu and alpha we're going to be looking at good opportunities to mop up looking at creeping and smoldering as the heavy fuels continue to burn one thing you have to watch for is a risk of uh something taken off an undetected spot that gets into that steep ground you're going to need to have engines dozers or aircraft to contain the heads of any of those spots should be able to go direct on the flanks and the heel though for air operations the smoke should lift out early today but watch out for the winds around the thunderstorms they could hamper your operations for safety remember to base all your actions on current expected fire behavior when wind slope and maximum solar heating combine you'll expect a large increase in the rates of spread and and flame lengths one thing we want to do is to continue to relay our weather ops back to the icp through communications and have a good safe day plan for the operational period day operations section chief thanks morning uh as you can see from our discussion of the fire weather and fire behavior we got a pretty serious days work ahead of us here we'll start it off with with division alpha uh division alpha soup okay we have our division group supervisor right there i want you to hold your breakout over on the east side of the parking lot there and do a roll call out that time if the rest of you division group soups out there uh just ensure to hold your roll call at your assigned breakout area and uh moving with uh with division alpha i want you to start working at drop point two there start working your way north just right just right up to just right up to drop point three you'll be able to hold that fire on those existing forest service system roads so you have a pretty good day's work ahead of there for you there looking for division bravo supervisor okay um your assigned breakout area will be on the south side of the parking lot there and uh you're going to have pretty much the hot side of the fire there you and division charlie start from drop point three pick up those dozers been working night shift get those folks swapped out there start pushing in line north try to go as as direct as possible and keep one foot in the black as you're as you're going up there i'll be going out and seeing your side of the line here soon as soon as you guys get started there for the rest of the day uh moving up north to division charlie okay on division charlie you'll be meeting over on the west side of the parking lot there and uh you'll be coming in over at uh drop point one should be picking up a night operational period dozer has been working all night in there make sure we get those crews swapped out and start to work your forces and picking it up there uh hopefully fire conditions are okay we can use mario reconnaissance for you and find where bravo and charlie can meet in there in order to tie in our lines moving over to a division yankee okay for a division yankee your breakout will be over on the north side of the parking lot and uh you've got a pretty cold side of the fire there for today uh look out for that anticipated wind shift uh you do have some some spot fires i want you to check on that i've been across the line and if you can they've held the fire to the existing forest service system roads in there and you can continue to hold that and that should work out for the days operational period there and moving over to division zulu okay um for division zulu your breakout area will be just right outside the doors here those big those big double doors of the building and uh for division zulu they've made some good work the last 48 hours and holding that fire to the existing forest service system roads in there and hopefully you'll be able to take your resources get them put out to drop point two and work them up to uh to division yankee so i'm looking forward to a good day's work out there division soups have your uh next next incident operational shift needs into me by uh 1200 hours and um is there any questions air operations air operations branch director thank you good morning um if you turn to your air operations summary in your incident action plans um in the remarks section i've addressed some issues in there that we need to work with uh your division group supervisors please request all the aircraft through air attack if you would please and also the the helibase has been moved uh where we previously were yesterday uh over here on this intersection we've moved it to spearfish and we've replaced that helibase with a helispot um the medevac helicopter will be five mic alpha and um also it's going to be a uh used for water drops but also it's for medevac and we're going to use uh the helispot one for pickup at that location um we have a tfr in place for the fire it's five miles radius from the center of the fire in 2000 feet altitude above ground level and the frequencies are air to ground uh division supervisors if you could double check and make sure your people all have that one seven zero point zero zero zero in their radios for air to ground and if not uh they can go over the communications unit and get the radios cloned before they go out um fixed wing aircraft we have on the incident today we got two heavy air tankers they'll be available at zero nine hundred they're at the rapid city air tanker base uh tanker two two and tanker one six and uh we have two single engineer tankers uh tanker four six one and tanker four six two they're at the spearfish um helibase and seat base there at the airport and they're available also at zero nine hundred um we have a lead plane lead eight eight they'll be working with them fixed wing aircraft and also uh we have two air attacks today on the incident so we have continuous coverage and they're available at zero eight hundred they will be over the incident zero eight hundred it's uh lead or excuse me air attack one alpha bravo and uh six three fox trot are the two air attack platforms that we have and then again five mic alpha is uh dedicated to water drops and so um they're also available at zero nine hundred they'll be off is there any questions thank you safety message safety officer good morning uh just want to really thank you for having a very safe incident so far you're doing a great job and just keep it up now there's a few uh hazards out there that i want you to make make you aware of uh one of the biggest hazards we got out there are snags we got snags all over the place uh when you're going into a new area be sure and and check out the area for snags and either flag them out or take them down and mitigate it before you have crews working in those areas the other situation we have out there is is communications are here is pretty good right now but there may be some dead spots so uh be sure and check those uh areas out if you have a dead spot establish a human repeater so that we can make uh have good communications the other thing is is highway 14 just outside the building here it's it's a really heavily traveled road right now we've got roadblocks in place but uh just don't count on that happening throughout the day you may wind up uh they may be opening those things up here later on this afternoon so watch out for that traffic on that major highway the other thing i've noticed out there is is uh long division yankee and zulu that road in there it's got a lot of steep ground above it there's a lot of rocks coming down the road you'll probably see them uh they're pretty good size so be careful when you're going through that area oh if you have to park along there be sure and get well out of the way and try to do it in such a manner so that if anything comes down those slopes uh it won't be either hitting you or your vehicles the thunderstorms that we may get this afternoon that can cause a lot of erratic winds wind shifts and increase in wind speeds so be very careful when you see those thunderstorms coming in uh our meteorologists will probably give us a warning and a heads up if that if those do develop so be careful establish lookouts and make sure that you have that covered if that's if that situation should occur far as their operations go just want to reiterate uh when we start getting some heavy tankers in there bucket drops be sure and brief your crews ahead of time on proper procedures and make sure you stay clear of where those operations are occurring the other thing it's going to get warm it's going to be really dry today so be sure and hydrate and use plenty of water and i think logistics may cover that a little bit further in their briefing the other thing is is we want to make sure that you understand that uh you know i'm just a safety officer here you guys make it happen you're the ones that are out there and be sure and make sure that lces in place lookouts communications escape routes and safety zones establish that before you start your day and make sure that's known to everyone and you all have a great day and we'll see this evening logistics message logistics section chief thank you and good morning uh first of all i want to remind all you division troops to make sure your crews pick up their noon meals at the proper places over certain meals make sure they have their breakfast right away this morning next thing will be make sure they get their ice into water uh that's hot out there we don't want them getting dehydrated and we do have plenty of ice and water for uh make sure they stay hydrated the other one will be if you have any tools or equipment that you've uh requested and ordered make sure you stop over at the end out there staging area where we have our white truck parked and pick up your tools and supplies you ordered yesterday when you came in they should all be there ready before you go and bring in your ones that you've broke or need to replace uh with that uh have a safe day medical unit leader good morning we've seen a number of cases of poison ivy especially in division bravo and charlie so when i heads up on that um i printed out some information and pictures on the poison ivy plant those will be posted both in the medical unit and throughout camp can't stress enough you need to stay hydrated out there plenty of water gatorade power drinks available so make sure you're drinking plenty of fluids also you've seen uh there are numerous hand washing stations located in camp please use those identify your emt's uh on both crews and engines when you're working out there in your divisions in case of a medical emergency make sure that you refer to the medical plan in the iap use those procedures uh report any injuries to the medical unit and is there any questions for the medical unit thank you communications unit leader there'll be a change in the calm plan today we got a second repeater set up over here on pillar peak so them dead spots and divisions charlie and bravo should be taken care of that'll be on channel seven uh we're going to have to reclone the radios today to coincide with the calm plan if you have any communications issues or anything bring them up to our tensions or one of our techs thank you finance message finance section chief good morning please turn in your ctrs at the end of each operational period at the finance section and the state fire number for those of you who do not know is ffm zero six four zero nine six and the federal number is p2b six th and if you have any questions on completing the ctrs please come to finance and we'll help you and for those of you i just want to make everybody aware that on the information boards that are around camp there are lists of people that we need to see in finance that we have questions on your ctrs or on your contract or whatever just please come check with us thanks information message information officer good morning we have had a great deal of interest from the media on this fire and we are escorting them we have had some reports of media out on the line without escorts and without their ppe division soups if you get reports of that please just holler i'm monitoring the radio and i'll come out and escort them in we've also had questions coming out of the community we spent a lot of time out into the community with the folks around the area they're very pleased with the job you guys are doing i wanted to let you know that and they're um thrilled to have you here working on the fire also we've established some bulletin boards around camp so there'll be information from finance and uh safety up on those boards and please keep an eye out for those any questions thank you agency administrator comments state of south dakota thank you good morning uh really want to tell you how much we appreciate the good work of the team and all the firefighters who've come to help us uh before you guys got here things were really not looking good we had a lot of structures at risk we haven't lost any we really appreciate that we just want to tell you to keep up the good work um and we really appreciate the work that you're doing for us thank you united states forest service good morning i would like to say thank you for your hard work i appreciate your support on initial attack in the local area around the incident and a couple of things uh watch your speed on the highway uh make sure you got your headlights on watch your uh using your seatbelt and uh i really appreciate your guys's safe aggressive tactics and uh also i appreciate your efforts towards cost containment closing comments incident commander thank you you've heard this a lot of times but i want to again thank all of you for the hard work that was done out there on fire line um we've gone a long way in uh meeting our tactical objectives the last couple of days remember safety is always a concern on this incident and again we can't stress on that enough a couple things remember we got the thunderstorm activity in the area heads up good situational awareness and tomorrow we have red flag other than that uh keep up the good work and have a safe shift thank you division breakouts were assigned by the operations section chief unassigned resources come up and see me at the end of briefing our next operational briefing is at eighteen hundred hours thank you for coming have a safe shift i hope this video has been useful and you now understand the meetings involved in the planning process and an operations briefing


I think I'm lost. What is this place? I don't know. I want to forget your culture and your history. This is Makubushu area. As you can see, we have various traditional houses with your ancestors' youth. For example, this one is for Nyambo people from Kambira region. Wow, and that one is for Kupuma people. So if you go around this place, you can find traditional houses for various traditions or tribes that you have found in Tanzania. And that one is for Kupuma people from Shinyaga and Muaza. And if you go back there, you can see various traditional houses from various tribes. So you are welcome and you can go and see around those traditions. You should not forget your culture and your history. Thank you. It's a nice place. Hello viewers. Welcome to our history program. This history program consists of five lessons. This history program is about understanding the history of man as well as the ancient history of our country. The first program is about the meaning, sources and importance of history. Hope you will enjoy it. After watching this lesson, you should be able to explain the terms history and recording, describe historical sources which are found in East Africa, and the importance of history to man's life. What complicated question is that? Just ask your father. Okay, Daddy, what is the meaning of history? Do you know the meaning of history? Okay, right. History is a record of human activities in Nigeria. And these activities are those human used in order to survive from their earliest years. The activities we are talking about, this includes the plants our ancestors made for obtaining basic necessities such as foodi, shelter, and clothes. They made fire for cooking foodi and for warning themselves. They made implements with metal objects with which they could hunt and protect themselves. And they used materials from their local environment to make clothes to wear and to build structures for shelter and protection from wild animals and the elements of the nature. You can hear a number of meaning of history, but this is the best one. That sounds like a hard one. I am so glad they did that for us. You are right, my daughter. They made a way smooth so that you can get a better life. And you have a good respect for me. Various ways of its main historical information. And what of it is museum, isn't it? Ya, you are right. When you come to the museum, you can visit a lot of things as you have seen here. And in Tanzania we got a lot of museum, but we have the small one and we have the big one. It's like in Karenga-Iringa, we have also in Bujora Mwanza and here we are in the National Museum of Tanzania and this is House of Kacha Museum. So we are dealing with a lot of things. We have also Village Museum, we have Memorial Majumaj Museum, we have Decoration Museum in Yaroosha and also we have Memorial Mnirere Museum in Butiam. So as we see here, we have a lot of things. We can see like we have this different mask built by Womakonde and also we have like science and technology. We have this bicycle that's made by wood and also we have things to use those who are smoking and doing some, some like using a tobacco and so on. And also we have here the building, this is it from Moabena and this is original from Yringa. So when you visit the museum, you can find a lot of things, first you enjoy, you entertain and you get education. So that is... Akioloji is the other source of historical information. It is the start of remains referring to fossils and bonds of human beings. The tools they made and left behind after they passed on. Historical sites are the areas where ruins of physical structures and drawings can be observed. For example, places like Kilwa, Kondwa-Irangi and Ibagamoyo in Tanzania. Other sources of historical information include archives, written records and anthropology, which is the start of humans in the context of their life. I also use it for my work in the kuchimbea where there are many places to live with the kuchipi. It's different in the kuchimbea because they have many places to eat, because there are few places where they have to eat because they have no menu because they have food but the kuchipi are places where they have to eat. Another source of historical information is oral tradition.  These are passed from one generation to the other generation. Usually from the older generation to the young ones. The importance of history as a subject is it helps us to cognize the past, present, and predict for the future. History gives an explanation about the historical changes taking place in production relations and it helps us to appreciate what has been done by our forefathers. For example, the model that our nation founding father led Julius Nyerere left for us to follow. For example, you can see those are the cars which were used by Muallim Julius Nyerere. Viewers, thank you for watching our program on the meaning, sources, and importance of history. We look forward to have your campan next time. It's me, Regina Jirobian, your presenter until next time. Take care.


Oh, mate, I think I'm one of these environmentally sensitive species, all right. This area is environmentally sensitive and contains some rare coastal plant species. Your assistance in preserving these plants, by keeping to the defined access ways appreciated. I think that I'm an environmentally sensitive species, mate. I think I'm one of these rare coastal plant species, all right. You're not going to be able to preserve these environmentally sensitive species unless people behave themselves, all right. They can't go off the reservation. Like, how are you going to preserve environmentally sensitive species if people just start acting out? It requires a high trust, highly cohesive society if you're going to protect environmentally sensitive species. We've got rare species all around us. Anywhere we're going to be able to protect them is if we have the privilege of living in a high trust, high cohesion society, all right. So there are all these instructions. Survival on the coast. What does it take guys to survive on the coast? Plants growing along coastal cliffs endure extremely harsh conditions where only the hardiest survive. So, do we really want to create a world where only the hardiest survive? Or do we want to create a world where even the sensitive can survive, all right. And to do that, we'd have to band together. I mean, the alternative is just wind pruning, right. We can have strong salt laden winds from the sea, bend trees and shrubs. Just flattening everything in their path, right. Do you really want to live in a society of extremely harsh conditions where only the hardiest survive? Where people perch on rock shells and shallow dry sandy soils, waterlogged swamps, soils baked by the sun, blasted by salt later on shore winds. Or do we want to create a world where even the environmentally sensitive can survive and share their live streams with us? They're beautiful, sensitive insights, right. I want to live in a world where the environmentally sensitive can survive. Why should it just be the survival of the hardiest, the nastiest, the cruelest, the most selfish? We can have a world where sensitive creatures, sensitive species survive, right. We can choose that. We can choose to create a society where there aren't bad parts of town. We can choose to create a society where we lock up super predators. Like where we lock up people who try to devastate environmentally sensitive and rare species. So let's lock up the bad guys. Let's create a space for the environmentally sensitive like me, right, where we can thrive and make live streams.


Good afternoon, everyone. Thanks for coming to my talk. This is a talk about data structures, primarily. It's not a very kernel-focused talk. While we are developing this for use in the kernel, there's actually very little background that I'm expecting you to have on kernel-related programming. I'm just expecting you to have a general sort of low-level programming background. So we all know that kernel developers are the sexy thing to be, right? All kernel programmers are super geniuses. And so obviously, they use the most advanced data structures known to mankind. Generally, we reach for a linked list. And that's because a linked list is really, really straightforward to use. We have a great API for making it easy to use. And of course, the performance of a linked list. And by the way, a doubly linked list is the standard kind of linked list used in the kernel. We do have singly linked lists. Both kinds of lists, aren't we smart? We do have other kinds of data structures in the kernel. We have an RB tree, which is a red-black tree. Red-black trees have certain properties which keep them somewhat balanced. This one is perfectly balanced. You really can't do better than this. And this particular example I have here is a red-black tree, which lets you look up an age. Now, I have inducement for people to participate. Would anyone care to talk with the hand and suggest, what is the perfect age to be? No one? OK, I'm going to pick on an audience member. You, sir. What is the perfect age to be? No, you. No, don't look around you. 21. OK. So we start at the top of the tree. Are we in the range 35 to 44? No, we're less than 35. So we go down to the left to the 18 to 24 node. We find our number, 21, is between 18 and 24. And there we have it. We've walked two steps down, and we've found the age we're looking for. Would somebody, Mattia, would you care to suggest a different age to look for? A different age. A perfect age. 48. OK, again, we start at 35 to 44. We move to the right, because 48 is greater than 44. Have a candy. And you still have a candy. OK, so we move to 55 to 64. We are not between 55 and 64. We're less than 55. So we walk down again, 45 to 54. We found it. We found our age, and we took three steps to do it. As opposed to walking as a single or doubly linked list, where we would have to start from the beginning and walk all the way down, we found us in fewer steps than it would have taken. So this is an improvement. Now, for similar ages in the maple tree, and I haven't really described what the maple tree is yet, but you can see an illustration of it here. And this is actually a cut down maple tree, because the actual maple tree that we're working on, this would be very boring, because it would be a single node. So for the purposes of slides, this is cut down. So we get actually three nodes instead of a single node. And so for our first example, 21, we look at our pivot, we say, well, we're less than 44. So we move to the left. And then we scan through, are we less than 17? No. Are we less than 24? Yes. So we've moved through two nodes, and we've found the answer we're looking for. It's 70 for 48. We look at our 44 number. We move to the right. And we see, oh, we're less than 54. OK. We found what we're looking for. So fairly similar, but those were best case trees. Here are some worst case trees. Now, for the 21, this is great. We found it right there at the top. We only had to look at one node, and we found it. That's perfect. Matty, you let me down. You said it's to 48. Again, we only had to move two nodes this time. OK. But if we'd chosen anything else, we might have had to walk quite a long way down the tree. This tree is balanced according to the properties of a red-black tree, but it's not perfectly balanced. It's good, but not perfect. And most trees have this kind of property that you approximately balance them, because getting them perfectly balanced wastes too much time. Similarly, the maple tree can become somewhat unbalanced. This is really too small an example to show you a deeply unbalanced tree. But this is the best I could do, but you would end up with three nodes in it, each with two entries. The final one has three entries, because you can't have a maple tree node with a single entry in it. So one other kind of tree we have in the kernel is the radix tree. And over the last three or four years, I've been working on the radix tree, giving it a better interface, making it easier to use, and I call that interface the X-ray. And I realize that I have committed quite the crime. I have made it easy to misuse the radix tree. So people might now start... The maple tree really is not a good data structure for rangers. Because of how it's indexed, how it works, it just blows up in memory. And by the way, this is also a cut-down version. The nodes are 1 eighth the size that they would be in real life. And the amount of memory you'd end up wasting is way worse than it is shown on this slide. It's just not the right data structure for this purpose. So I've done a little comparison here. The radix tree has some great properties. One is that it's RCU safe. And for those who aren't familiar, RCU safe means that you can walk the tree without taking any locks, which means we have great scalability. And it's why the radix tree is used with things like the page cache, where performance is absolutely essential and scalability, as well as performance is absolutely essential. So that was a property I wanted to keep for the maple tree. The support for rangers, originally the radix tree had no support for rangers. Without changing the data structure too much, I added limited support for rangers. But people then started to try and use it with generic support for rangers. And that was a bad idea. The maple tree does not support arbitrary rangers. It only supports rangers which don't overlap. So if you want to use it for something like file locks, where you can have a read file lock that goes from A to B, and another one that goes from C to D, and C can be less than B, that's fine, that's allowed. This is not the appropriate data structure for it. This is really for one value has one pointer associated with it. The radix tree has a very, very short height. Not in that particular example, the maple tree did better. But for the kinds of things that the radix tree should be used for, it is the theoretically best possible tree to use. So the maple tree sacrifices some of the best possible case performance in order to make the worst possible case performance significantly better. The biggest problem I have, well, one of the two big problems I have with the RB tree is it's a very hard API to use. You have to write a significant amount of code in order to search it and to rebalance it. That makes it very flexible, but it also makes it very hard to use. Whereas the radix tree and the maple tree have an easy-to-use interface where you don't have to write any code, you just have to call the functions. One of the things which makes the RB tree similar to the list head, sorry, the doubly linked list we talked about earlier, is that you actually embed a node into your own data structure. So you don't have to allocate memory. An allocating memory inside the kernel is harder than user space. It may fail. You have to be prepared for the possibility that allocating memory is going to fail. And so the radix tree and the maple tree both use nodes allocated externally to the data structure that you're storing rather than embedding it. And so the RB tree embeds that node and it's only 24 bytes. It's a pointer to the parent, a left pointer and a right pointer. The radix tree has 64 pointers at each level of the tree, so it's got a huge node size. Whereas the maple tree has somewhere around eight pointers and so it has 128 bytes. Or as I like to say, two cache lines. Now that affects the height of the tree. So one example is that for a million, if you put a million entries into the tree, numbered from 0 to 999, 999, you, the radix tree gives you a height four tree. So you only have to dereference four levels of the tree to get your data. The red-black tree has a height 18 because you're only halving the number of nodes at each level of the tree. And the maple tree is of height seven. So it's intermediate in depth between the radix tree and the red-black tree. So these are the nodes which make up the maple tree, at least right now in our current code base. So we arrange 64 nodes, which are used both as non-leaf nodes and as leaf nodes. And so the value that you're looking up, the index that you're looking up in the tree, you'll compare it to these pivot values. And depending whether you, the first one you find that you're less than, you know to take the corresponding, the pointer out of the corresponding slot. And we mark the range nodes, whether they are leaf or non-leaf. So if they're non-leaf, you go down to the next level of the tree and you repeat the process. But if they're leaf, the pointer that you found is the answer you're looking for when you return that pointer. Alex64 nodes, I'm going to talk about actually in the next slide. But Alex64 nodes, the important point about them is they're only non-leaf nodes. They provide summaries of the nodes below them. So really doing with this, the radix tree works perfectly well for many of its users, just replacing the radix tree is not going to win us very many friends. So we decided to tackle a problem which really exists and will actually help customers with their workloads and us with our own laptops. So whenever you call M-Map, you create something called a virtual memory area, which we all call VMAs because life's too short to type out virtual memory area every time. So every time you take a page fault, so the CPU accesses a page of data that it hadn't accessed before, we walk our way down this tree and it's currently stored in a red-black tree. We walk our way down this red-black tree until we find the virtual memory area which corresponds to the address of the data you're looking for. We find the VMA and then we handle the fault and how we handle the fault doesn't matter to this talk because that's not the important bit. So we have various other things we need to do. It's not just about finding, it's also about allocation. So whenever you call M-Map and you don't specify the map fixed flag, you have to find some empty address space. And that's what the gaps on the previous slide were all about, that at each layer of the tree we record the size of the largest gap to be found underneath each slot in that particular node. And so that lets us skip large parts. We don't have to search large parts of the tree where we know that there aren't sufficiently large gaps. One of the biggest problems we're having right now is that if you call M-Map with map fixed, that actually overwrites existing VMAs. So you may end up having to delete. So the easy case is when you split an existing VMA. And honestly, that's the case that most people actually use. But it is not impossible to have map fixed actually delete tens or hundreds of VMAs. And that is a possibility that the literature on the trees does not teach us how we should handle. So we've had to devise our own algorithm for that. An easier problem to solve is that if you look at this particular file in slash proc, it will show you all the existing VMAs that a given process has. And so we have to be able to iterate over them. Unfortunately, B trees are really good at doing that kind of thing. And another tricky part of this is that if you have a stack in your process and you can mark it especially so that when you access off the bottom of the stack, the kernel will, or top of the stack on some architectures. But if you access off the end of the stack, the kernel will automatically allocate you another page of memory and let your process continue growing its stack. I was hoping to have actual numbers for you today. Unfortunately, we are not far enough through this project to give you those numbers. So here's our analysis. Assuming we have a perfectly balanced RB tree, these numbers are for Firefox, which on the day that we measured it, had 1,415 VMAs. On average, you find the VMA that you're looking for in 9.5 dereferences. So there's a 1 in 1,400 chance that you find in the first VMA. There is a 2 in 1,400 chance you find it after looking in the second level of the tree, et cetera, et cetera, et cetera. So the maple tree actually needs to store null entries. It only store, it doesn't, because of the way the maple tree works, it handles storing nulls between ranges as if it was just storing another range. So I did the calculations. And if you have the worst case tree, it's going to take you about 8 dereferences. So that's a win. The maple tree worst case beats the RB tree's best case, which is fantastic in terms of dereferences. And then, so the average tree is 7 dereferences, and the most compact tree is also 7. Now, you can see with some of these numbers like we might be able to end up deleting some, if it only had half as many. And Firefox maps far more VMAs than anyone else. Firefox is probably the process on my system that maps the most different things. We might be able to get down to 6 or 5. Indeed, if you look at cat, it's only got like 30. So that's a very short tree. Yes, question. The question was, how many cache lines are you going to touch for each of these lookups? And so it's actually a very good question. And Machia has made a very important point, which is that your performance is going to be dominated by how many cache lines you touch. That's just how modern CPUs are limited. So at each level of the tree, at each other, the maple tree, it's two cache lines. At each level of the RB tree, it's a single cache line. However, the two cache lines that you touch are consecutive. And CPUs are really, really, really aggressive about prefetching cache lines. So if you just touch one byte, it's probably going to load in at least two cache lines. I've seen traces from CPUs where they'll load five, eight, 10 cache lines just because you touch one byte, because it's almost free for them to do it. This is something, I used to work for Intel. If you have a sufficiently development machine, you can tweak all kinds of things about how aggressive the prefetchers are. I do not recommend touching that on your own machine because chances are somebody smarter than you has already tuned it for the common case. If you really, really, really know what you're doing, sure, go ahead and play with it. But on your laptop, just leave it alone. They're certainly to L3. I don't know if those prefetchers come as far as L2 or L1. I think if I did know that, I wouldn't be able to tell you because Intel would consider that to be proprietary. All I know is that they're getting closer to the CPU. They're not coming from memory anymore, but by the time you're touching the second cache line. Yeah. OK, so that's performance. Now let's look at memory consumption. So I already said that inside a VMA, you're going to have these 24 bytes. You've got a pointer up. A pointer to the parent, a pointer to your left child, a pointer to the right child. But for the VMA tree, we also store next and previous. So because fairly often in the RAM management subsystem, once you have a VMA, you might want to know what the start of the next one is or what the end of the previous one is. We actually have pointers for, so instead of walking, back up the tree to the nearest common ancestor and then back down the tree, you just look, you just follow the pointer. So that's another two pointers. And then because the RB tree is also optimized for doing allocations, they also store the gap. So that ends up being six pointers or things that the size of pointers that we allocate. So that's 48 bytes per node. And that works out to 66 kilobytes for this 1,415 VMAs. And the calculations then work out. So our worst case, the worst case of the maple tree does not beat the best case of the RB tree. But the average case does. So it's about 20% worse for the worst case scenario. But the best case scenario is actually 50% better. And the average case is 20% better. So I'm going to call that a win too, even though worst case is like, yeah. So once we have our implementation fully debugged and we're able to provide data, I feel like this will be pretty exciting. But this is not the only problem I want to solve with. I want to solve the RB tree problem. But I also want to solve the radix tree problems that I discussed earlier. We have a function in the kernel called IDR allocCyclic. And the IDR data structure, and I don't know what the letters IDR stands for, it might well be ID and then something. But the guy who wrote it appears to have disappeared. So we don't know what the letters stand for. So the idea of the IDR allocCyclic is here is a pointer. Tell me what ID you stored it at. Here's another pointer. Tell me which ID you stored it. And the IDs should increment up to a certain point at which point it wraps around to zero. So the first point you hand it gives to tell you it's index zero. The second one gets to index one until you get to the end. You wrap that around to zero. And it doesn't reuse. So if they're still in use, it won't reuse an ID that's still in use. So if you're storing process IDs in an IDR, which Linux does, the RAIDX3 data structure is pretty inefficient at that. Because you've got gaps down around between. If you look at the PIDs available in your system, like you type PS, and you look at the range of PIDs that are in use, you'll be able to see that there's some gaps. And every gap you see represents at least one pointer that is not being used. And you have to keep track of which ones aren't in use anymore. So the idea with the maple tree is that we are going to add a couple of different kinds of nodes. So what we've talked about so far has been optimizing for storing a range of IDs which map to a single value. Now we also want to be able to optimize for having single values which map to a single pointer. And not only that, we want to optimize for single values which map to a single pointer but are distributed in a sparse fashion. And so we added a couple of new node types. Or we've written down how to deal with these couple of node types. We have a dense and a sparse 64. So a dense node, you'll notice we don't store any pivots in it. At the point where you're indexing and dense and sparse 64 nodes, they're only for use at least. You can't use them higher up in the tree. So the point that you're indexing into a dense node, you'll have an index which is between 0 and 14 from the pivot of the parent that you're accessing from. And you just load the pointer you're looking for out of the slot. That's it. You don't scan through the slot. There's nothing to scan through for. All you do is load the value that you're looking for. Sparse nodes are a bit more interesting in that you look at each of the pivots in turn. If any of those pivots is the index that you're looking for, you load the corresponding pointer. If you get to the end of the pivot array and it was none of them, the answer is no. So this is literally a list of six values and six pointers that correspond to it plus the seventh pointer, which is actually used for the pointer which corresponds to the pivot of the parent. So we find a way to use that last slot. I'm going to skip over the API. I do want to note the API we have is very, very reminiscent of the XRA API. And the intent is to unify the two. I convert the maple tree over to the XRA API. But we want to make this suitable for merging to handle the VMA problem. And then we'll come back and unify the two later. So I'm just going to skip over these. So we have some, this is our short-term plan. Obviously, we need to finish what we've started with the VMA tree and do a whole bunch more benchmarking and testing to make sure that we're not introducing any bugs. When you think about 32-bit CPUs, the whole way through this talk, I've been talking about pointers being 8 bytes. Well, if points are 4 bytes, that's going to change the calculations on a number of different things that we're looking at. And honestly, 64-bit CPUs are not quite ubiquitous yet, but it's certainly the one that we care about the most that we've been thinking about at the moment. One of the things that's missing compared to the XRA API is search marks. What search marks that you do is tag each of the pointers with a particular mark, 0, 1, or 2. And then you can search and say, you can say things like, show me all of the pointers which are tagged with tag number 1. And some of the users make a lot of use of that and others make no use of that. So we need a new node format for supporting search marks. That's fine. We started out doing an implementation of the dense nodes and then realized that nobody was going to give us any prizes for replacing the VADX tree with something that worked not quite as well as the VADX tree in the best case. We've put that on hold for the moment, but we'll need to go back to it and dust it off. Like I said, we want to implement Spark 64 nodes and get rid of the Maple Tree API and favor the XRA API. We have some fun longer term plans, too. One is to compress the pivots. So if you look at a real life tree, you'll see that it very quickly degenerates into a point where the pivots all start with very close to the same pattern of bits. And we were saying to ourselves, well, what if we figured out a way to just look at the bottom 32 bits? And we actually have calculations going all the way down to supporting only nine bit nodes. But we're starting to run out of bits to encode which kind of node we're looking at. So this is probably as far as we're going to go because the benefits really do start to drop off after you go down as far as 32. So you can see, for a range 32 node, we get 10 slots rather than the eight slots that we were getting with a range 64. And so that's pretty valuable. I think that's worth having. Because the more fan out you get at the high levels, the shorter your tree is. So that's worth having. Another thing that we want to use the XRA4 is the file descriptor table. Right now, the file descriptor table is a very own custom implementation of a resizing array. So every time you exceed a certain value, the file descriptor code goes off and allocates twice as much memory as it used to have, copies all the pointers over, and says, here you go. Well, that seemed like a really bad idea to me. And I said, whoa, we should convert that over to using an IDR. So it's perfect. And Google came to me and said, so we have an application that has half a million file descriptors and accesses them randomly because they're network sockets. And we don't know when the next network packet's coming in. And so if we do that, we're going to incur seven cache misses per file descriptor, as opposed to the one cache miss that we currently incur because we've used a VM alloc array. And I said, fine. OK, I will stop touching this code for now. But I haven't forgotten, because I don't think anybody should be implementing their own custom resizing array of pointers in the kernel. So I'm suggesting that we start out by allocating an entire page for this kind of situation. So once you grow to maybe past 256 pointers in your tree, we just allocate an entire page to you. And you get 512 pointers per page. And that ends up taking three levels out of the tree for dense regions of the tree.  You can have a mixture of different types of node in different parts of your tree, depending how your indices are distributed within the space of indexes. So I feel like this is going to be a useful thing. We may never end up being able to use it, but it's going to depend on benchmarking. So Google's not going to say no to this if this improves their performance. One of the other things we want to do is replace hash tables. It's really, really hard to size a hash table effectively. If the top level of your hash table is too small, then you get long hash chains. And walking hash chains is expensive. It's basically a singly linked list. No, it's basically a doubly linked list, pardon me. But if you oversize the top of your hash table, then you're just wasting memory. And so we see these things all over the place, like with the de-entries. We assume that on a larger system, you're going to be accessing more directory entries, more filenames, which is not necessarily true. It really depends on how your system is used. You can override it, but honestly, having sysadmins tweak the de-entry hash sizes is just a ridiculous thing to expect anyone to do. So we should try and size these things more automatically. Complicating this, someone's actually introduced an automatically resizing hash table. So we're going to have to benchmark against a real data structure soon. And that'll be cool. May the best data structure win. I feel like we have a good shot, but it's by no means a guarantee. And then we have a whole bunch of open questions. And I don't have too much time to go into them deeply, but which one? So I want an API to let us remove or insert a whole batch of entries all at once. And I don't know what that API should look like. And this will be a good topic for conversation later, I would say. We are talking about using a larger node size. Right now, we size our nodes to be 128 bytes, two cache lines. We're talking about maybe go to 192 bytes, which will bring the height of the tree down, but it will increase the number of cache lines that you potentially touch each time you go down the tree. It's an interesting trade-off to make, and we're not quite sure what to do yet. Again, we need to get the code working as it currently is and then do some benchmarking. I would deeply love to get rid of the RbTree data structure altogether, but the x-ray does not handle overlapping ranges. And quite a lot of the RbTree users in the kernel today do use overlapping ranges. And I think that's actually going to have to be a different API, maybe some shared underlying code, maybe not. That is definitely a project for the more distant future. If we find users which often have gaps between the ranges, we may end up wanting to introduce a new node type to support those. It's on the table, but right now we're optimized for ranges which are adjacent to each other. And where you don't have a rate where there are two ranges which are not adjacent to each other, we insert a range which maps to null rather than having a start length and pointer triplet. The RbTree supports only three marks, search marks. I've been asked to support five or seven. And somebody said, well, if you're supporting seven, then I'm going to ask for 10. So I really want to try and get a sense from people who might use it how many search marks they would like to support, because we can actually trade off more readily than the Radex Tree how many search marks we could support. And that is the end of my talk. Particularly if you have an account on kernels.org already, I would really appreciate it if you would sign my PGP key, because I lost access after the kernels.org break-in. And I've recently been asked to reactivate that account. But in order to do that, I need signatures from kernel developers on this key. So please do so. I want a minute over. OK, thank you all for coming. I'll take questions for a couple of minutes, if anyone wants. Yeah, Matthew. I have looked into Judy arrays. And I think you and I can have a very fruitful discussion about why I think this is probably better for our purposes than the Judy array. Sounds like a great idea. Yes, sir. How does this compare to cache oblivious B-trees? OK, so we've done some looking into those. The B-trees and the literature generally don't handle ranges. They are optimized for essentially single-value maps to single-pointer. Or even just is a single value present in the tree? You find this quite often in computer science textbooks. It's just that they're literally just storing the value, which amuses me. Because it's like, well, have I seen this number before? Yes, most of the time you want to associate something with that number. The better textbooks say adding this information is an exercise for the reader, which is lovely. But yeah, how do they compare? Yeah, so they're really optimizing for different things. I mean, we are very, very conscious of caches as they are. And yeah, one of the things I didn't talk about earlier was that B-trees were originally developed for use on disk back in the 1970s. And the ratio between CPU speed and disk speed then is about the same ratio as CPU speed to memory speed now. So it really is appropriate to start using B-trees data structures for main memory data structures. The big difference with them is that you can read memory one cache line at a time. You don't have to read four kilobytes at a time. So it does encourage us to use smaller nodes rather than larger nodes. Obviously, larger nodes do give the advantage of having a less deep tree. But then you have to spend more cache lines at each layer of the tree looking for it. So there's definitely trade-offs to be made there. And I won't say we've definitely made the right ones yet. Thanks. Great question. Yeah. That is actually what I meant. Yeah. Yeah, I just wasn't speaking very precisely when I said compressed. I mean, there's all kinds of interesting ways you can choose to compress the indices. But I think the easiest one is simply say, yeah, instead of these being absolute values, these are offsets from the parent's pivot. Yeah. Anyone else? Cool. Thanks for coming.