AIX ramdisks

Long ago (think 1999ish), I wrote a techdoc on how to put JFS on a ramdisk on AIX. We called them FAXES, because we would fax them to people, and this was before FAQ was a common acronym. At some point, I put it into the TechDoc system when that came out, because there was a push to use the system.

I lost the original text, but the techdoc lived on. It was rewritten after I left big blue. You can see their better version here:
http://www-01.ibm.com/support/docview.wss?uid=isg3T1010722

I don’t want to copy their doc, because they can be testy about such things. Heck, they can be testy when they plagiarize my docs. The key reference is syntax, which I’ll summarize here. You can also just look up the manpages on mkramdisk, mkfs,

Make a pinned-memory ramdisk: mkramdisk $bytes
The default uses pinend RAM, which is required for JFS or JFS2.

Make an un-pinned ramdisk: mkramdisk -u $bytes
This is okay for raw devices, maybe UDFS, but not for JFS. There are latency/access requirements on JFS, but at least mkfs knows to throw an error here if you try to skip it.

When you run mkfs on /dev/ramdisk0 as JFS, it’s normal, except you mount -o nointegrity.

When you run mkfs on /dev/ramdisk0 as JFS2, use -o log=INLINE on the format, and the mount.

You can, of course, format UDF as well: udfcreate -f3 -d/dev/ramdisk0 ; mount -vudfs /dev/ramdisk0 /RAMDISK

You could probably run a mksysb to the ramdisk. I don’t know if it would be raw, or if it would be UDFS. That might be useful for high speed testing, but of course, the ramdisk evaporates on reboot. You could dd the ramdisk out to some other media.


Bike Tires & Pressure

This is reference info for me:

  • Pavement Reference: 700c, 28mm @ 120psi for 300 LB ride weight, 60% rear
  • Cruiser Reference: 32er, 55mm @ 60psi for 310 LB ride weight, 70% rear
  • Off-Road Reference: 700c, 40mm @ 40psi for 180 LB ride weight, 60% rear

Slower speed, butt off the seat, you can go lower psi. You’d be risking pinch flats on longer rides, or unseating the bead in harder turns, etc

Tread pattern is coarse for rough terrain, fine for sand & hardpack, and smooth for pavement.

Higher pressure prevents tire flex, and is better on pavement. – Less shock absorption, grippy on soft, loose surface.

Lower pressure increases tire flex, which grips obstacles better. – Increased risk of pinch flats, or rolling off the rim.

General width preferences:

  • Hardpack or pavement – narrow to prevent drag
  • Sand, pea gravel, mud – wide to prevent sinking
  • loose, large gravel – wide to prevent pinch flats, throwing gravel, etc

Weight Distribution

  • Cruiser ~ 70% rear.
  • Mountain ~ 60% rear.
  • Race Road ~ 55% rear.

Proportional adjustments:

  • Narrower tire for larger diameter
  • Lower pressure for lower weight
  • Lower pressure for wider tire

Rim sizes:

  • 559mm = 26er
  • 584mm = 650b / 27.5″
  • 622mm = 700c / 29er
  • 686mm = 32er
  • 787mm = 36er

dsmserv fails to start if LDAP is inaccessible

IBM, and the white books, say this is working as designed.
• If LDAP dies, dsmserv stays up without it.
• If LDAP dies, and dsmserv restarts, it refuses to come up.
• ANR3103E https://www.ibm.com/support/knowledgecenter/SSEQVQ_8.1.5/srv.msgs/b_msgs_server.pdf
• Workaround is remove LDAPURL from dsmserv.opt, or wait for LDAP to become accessible.

On a multi-homed server, any links serving LDAP should be fault tolerant.

Any server using LDAP should have fault tolerant LDAP servers.

Here’s where to vote on getting the start-up limitation changed.
http://www.ibm.com/developerworks/rfe/execute?use_case=viewRfe&CR_ID=121985


Dodger the Seventh

Author: /u/Morc35

Date: December, 2016

Subject: [WP] In the canine world, Humans are celestial beings who live for 500 years.

“Come!” The paw on the back of my head scratches through my fur. I snap at Dodger. He still treats me like a pup, and he is old. Old or not, he manages to catch me and roll me over. I bat at his chest and he snaps and growls near my ears until I surrender.

“Insolent pup,” he growls again as he lets me up.

“I’m not a pup!” I stand up and shake. “I have earned my name. The Lady gave me a name!”

“Dodger! Sapphire!” The girl’s voice from inside makes me perk up my ears.

“The Lady calls again. Come!” He turns back toward the house and trots over. I follow, and playfully snap at his golden tail. He ignores me because I am obeying.

The Lady opens the door. The youngest. Not quite 100 years yet. She just came of age last week, and there was a big celebration. I was quite popular that night, as her friends gave me many treats.

There was talk among the adults about her going away. She said I would go with her, and that made me happy. I wag my tail at her. The Lady pats my head, but then she kneels down and hugs Dodger. The Lady is crying.

“What’s wrong?” I ask her. She only reaches out and pats my head again. She doesn’t understand me yet. Not like the Master. The Master knows what we say. He understands Dodger more easily.

And then I notice that Dodger is not wagging his tail. He is also sad.

“Dodger?” I demand. I muscle my way into the hug and lick the Lady’s face. She laughs a little.

“Dodger, what’s wrong?”

“I have to go see the Master,” he says. He breaks away from the hug and leaves me with the Lady, who hugs me now instead.

I sniff her. She smells of the chemicals that Master smells like all the time now. I listen. I can hear the Mistress talking, talking to the Peddler of the chemicals. I nudge out of the hug to follow Dodger, up the stairs, up to Master’s room.

“Hey Sapphire,” says the Mistress when I enter. She rubs me behind the ears the way I like. I tell her thank you.

“Beautiful Husky,” says the Peddler. I greet him and he pets me. He seems all right, but for the odd smell.

“She belongs to my granddaughter.” The Mistress’s voice sounds odd, like she is in distress, but I smell no danger.

“Ah.” The Peddler is packing up. “If you need anything else…”

“Thank you.” The Mistress walks out with him.

Dodger is on the bed. He lays his head on Master’s chest, who looks asleep. The chemicals make me want to sneeze, but Dodger had told me that is disrespectful.

There’s another smell too: it’s been present for a long time, but today it is stronger than before.

I walk up to the side of the bed. “Dodger!” I speak loudly to get his attention.

He opens his big brown eyes. “Quiet, pup,” he says. “And go away.”

“No! Tell me what is going on. Why does the Master smell like this? Why is my Lady crying?” I put my paws on the bed to look at Master. His skin is very sallow and thin. The veins stand out.

“I am the Seventh,” says Dodger. He lifts his head from Master’s chest. “My family was made part of the Master’s family generations ago, when he was just a pup.”

Dodger looks at his Master’s face. “The First was named Dodger as well. He named me, knowing I would be the last.”

“The last?” I whine. “Dodger, what are you talking about?”

Dodger sighs. “You’re too young to understand.”

“I am not a puppy!” I say it loudly. “I am not!”

The Master opens his eyes, and I wonder if I have made a mistake. But he laughs and reaches out to scratch my ears. Like the Mistress, he knows how to scratch properly.

“Hullo, Sapphire,” he says. I wag my tail. “Be a good dog for Jenny, mm?”

“I will,” I tell him. I feel Dodger looking at me, all solemn.

“Good girl,” says Master. “I don’t have long before I go. Dodger will take care of me.”

I hear a car pull up the driveway outside. It’s a large one. I run to the window and look out: it’s big and white, and strange humans in uniform get out. The Mistress begins to talk with them. I run back to the bed.

I look at Dodger. “He can’t leave. You can’t leave!” I whine.

“Hey, hey,” says Master. He catches me near the ears again, gently. “I told you, Dodger will take care of me.”

I whine at them both. “You can’t leave!”

The men come upstairs with a bed on wheels. The Lady comes with them and takes me aside.

“Gotta move the dog.”

“I’ll move him,” says the Mistress. She lifts Dodger off the bed. He seems older than he did a little while ago. I whine at the Lady, but she just holds me and cries.

“He can’t leave!” I tell her, but she doesn’t understand yet. “They won’t bring him back!”

But he does leave. The Lady just holds me and weeps while the vehicles drive away.

We go downstairs and outside. Dodger walks down the driveway, following the vehicles.

“Dodger, wait!” I strain against the Lady’s hands. She calls for Dodger, and he waits a moment. I get free.

“Dodger, we have to bring the Master back!” I tell him. I could still hear the vehicles on the road. The Lady was running up behind me.

He wags his tail at me. “He told you to be a good dog and take care of the Lady. Be good, Sapphire.” He licks my face and runs off, golden fur shining in the sunlight.

Lady holds onto me and calls for Dodger, but he disobeys. I had never seen him disobey before. He had never called me by my name before.

I only saw Dodger one more time: we found him at the meadow where the Master’s body was laid, curled against the crossed stone that marked it.

He was the Seventh of his family. I am the First of mine.


Spectrum Protect / TSM systemd autostart


cat < <'EOF' >/etc/systemd/system/db2fmcd.service
[Unit]
Description=DB2V111

[Service]
ExecStart=/opt/tivoli/tsm/db2/bin/db2fmcd
Restart=always
KillMode=process
KillSignal=SIGHUP

[Install]
WantedBy=default.target
EOF
systemctl enable db2fmcd.service
systemctl start db2fmcd.service

cp -p /opt/tivoli/tsm/server/bin/dsmserv.rc /etc/init.d/tsminst1
cat < <'EOF' >>/etc/systemd/system/tsminst1.service
[Unit]
Description=tsminst1
Requires=db2fmcd.service

[Service]
Type=forking
ExecStart=/etc/init.d/tsminst1 start
ExecReload=/etc/init.d/tsminst1 reload
ExecStop=/etc/init.d/tsminst1 stop
StandardOutput=journal

[Install]
WantedBy=multi-user.target
EOF
systemctl enable tsminst1.service
systemctl start tsminst1.service

ln -s /opt/tivoli/tsm/client/ba/bin/rc.dsmcad /etc/init.d/dsmcad
cat < <'EOF' >>/etc/systemd/system/dsmcad.service
[Unit]
Description=dsmcad

[Service]
Type=forking
ExecStart=/etc/init.d/dsmcad start
ExecReload=/etc/init.d/dsmcad reload
ExecStop=/etc/init.d/dsmcad stop
StandardOutput=journal

[Install]
WantedBy=multi-user.target
EOF
systemctl enable dsmcad.service
systemctl start dsmcad.service


Digestion Time of Various Foods

I am still looking for the raw source of this information, or the methods used to obtain it.

It matches my observations, but without scientific backing, this must be considered anecdotal at best.

Date: 2004/02/09, 01:55 PM
Source: https://www.freetrainers.com/forums/topic/eating-before-workout-17839/
Author: https://www.freetrainers.com/community/p/bb1fit/

DIGESTION TIME OF VARIOUS FOODS

  • approx. time spent in stomach before emptying

Water

  • When stomach is empty, leaves immediately and goes into intestines

Juices

  • Fruit vegetables, vegetable broth – 15 to 20 minutes.

Semi-liquid

  • Blended salad, vegetables or fruits – 20 to 30 min.

Fruits

  • Watermelon – 20 min.
  • Other melons – Canteloupe, Cranshaw, Honeydew etc. – 30 min.
  • Oranges, grapefruit, grapes – 30 min.
  • Apples, pears, peaches, cherries etc. – 40 min.

Vegetables

  • Raw tossed salad vegetables – tomato, lettuces, cucumber, celery, red or green pepper, other succulent vegetables – 30 to 40 min.

Steamed or cooked vegetables

  • Leafy vegetables – escarole, spinach, kale, collards etc. – 40 min.
  • Zucchini, broccoli, cauliflower, string beans, yellow squash, corn on cob – 45 min.
  • Root vegetables – carrots, beets, parsnips, turnips etc. – 50 min.

Semi-Concentrated Carbohydrates – Starches

  • Jerusalem artichokes & leafy, acorn & butternut squashes, corn, potatoes, sweet potatoes, yam, chestnuts – 60 min.

Concentrated Carbohydrates – Grains

  • Brown rice, millet, buckwheat, cornmeal, oats (first 3 vegetables best) – 90 min.

Legumes & Beans – (Concentrated Carbohydrate & Protein)

  • Lentils, limas, chick peas, peas, pigeon peas, kidney beans, etc. – 90 min.
  • soy beans -120 min.

Seeds & Nuts

  • Seeds – Sunflower, pumpkin, pepita, sesame – approx. 2 hours.
  • Nuts – Almonds, filberts, peanuts (raw), cashews, brazil, walnuts, pecans etc. – 2.5 to 3 hours

Dairy

  • Skim milk, cottage or low fat pot cheese or ricotta – approx. 90 min.
  • whole milk cottage cheese – 120 min.
  • whole milk hard cheese – 4 to 5 hours

Animal proteins

  • Egg yolk – 30 min.
  • Whole egg – 45 min.
  • Fish – cod, scrod, flounder, sole seafood – 30 min.
  • Fish – salmon, salmon trout, herring, (more fatty fish) – 45 to 60 min.
  • Chicken (without skin) – 11/2 to 2 hours digestion time
  • Turkey (without skin) – 2 to 2 1/4 hours
  • Beef, lamb – 3 to 4 hours
  • Pork – 41/2 to 5 hours

END OF QUOTED ARTICLE

Info about gastric emptying rates:

  • http://www.vivo.colostate.edu/hbooks/pathphys/digestion/basics/transit.html
  • https://www.mayoclinic.org/digestive-system/expert-answers/faq-20058340
  • https://www.physiology.org/doi/10.1152/ajpgi.1989.257.2.G284

The case against dietary extremism

This write-up is in response to some claims that humans were not built to eat meat.


Short Summary

Human biology is built for endurance hunting. We are not structured to eat meat with every meal, but some of our essential vitamins are only naturally available from meat.

Plant carbohydrate is the only fuel which causes multiple metabolic dysfunctions when consumed in excess of immediate needs. The US shift from fat to carbs in 1977 for bulk energy recommendation coincides with the sharp beginning of the US obesity epidemic.

Grains, pulses, roots, etc are not naturally a primary food source. They require substantial technology to prepare. The vegetable foods we can eat are not available year round without major technological advancements.

Some of our survival does absolutely rely on plants as well, including non-digestible plant matter, and other vitamins.

It’s not that we “can” eat both. It’s that we truly are adapted to require eating both. Technology allows us to get around this requirement, but it is not in any way “natural”.

We’re also not adapted for having food instantly available all the time, and we are not adapted to using carbohydrate as a primary source of energy.


Long rambly supporting info:

We, and our ancestors back to previous species, have a biology designed to follow prey around to the point of the prey’s exhaustion. While many animals can move faster than us in the short term, very few can travel as far as we can in a few hours, or even in a day, without becoming incapacitated by fatigue. At that point, we simply walk up to the prey and run it through with a stick.
https://en.wikipedia.org/wiki/Persistence_hunting

We are upright, which gives us a reduced thermal load from spending a long time moving in the sun.
https://www.sciencedirect.com/science/article/pii/004724849190003E?via%3Dihub

It also supports both wooded foraging and coastal hunting.
https://www.ncbi.nlm.nih.gov/pmc/articles/PMC2819487/

Compared to our ancestors, we devolved upper body strength and evolved lower body strength to support hunting, at the expense of being able to harvest and climb trees to the same level as other primates. We lost our opposable big toes, and our knees angled towards the middle a bit. This is an adaptation to extended running or walking, and use of tools instead of brute strength.
https://www.jstor.org/stable/1373587
https://www.ncbi.nlm.nih.gov/pmc/articles/PMC2840520/

Our digestive tract is designed for meat occasionally, but not constantly. The gallbladder stores and concentrates bile, and our bile is hydrophobic (eg, is used to digest fats).
https://www.sciencedirect.com/science/article/pii/S0375090613000323

Some of our vitamins only come from meat, or bioengineered foods. The most critical is Vitamin B12.
https://ods.od.nih.gov/factsheets/VitaminB12-HealthProfessional/

The canine argument is non-scientific. Canines, and pointed teeth, and claws, are for killing rapidly, both for territorial purposes and for hunting. Many species of primates have huge canines, even the ones that don’t eat much meat.
https://www.sciencedaily.com/releases/2008/06/080626145058.htm

Humans don’t kill with our teeth and claws. Not a factor for what we should eat. Whales don’t have canines either, and they eat tons of small shrimp and fish every year.

True herbivore teeth generally continue to grow throughout life, because it’s extra hard on teeth. We have two sets of teeth, one to fit our small head, and one set to fit our grown up heads. Birth size and brain growth come into play there. We live twice as long as we would in the wild, and we’re still dealing with people who, despite dental precautions, still have to have dental appliances.
https://www.miamicosmeticdentalcare.com/teeth-herbivores-carnivores-omnivores/

Our front teeth have fairly sharp corners, and a chisel edge, designed for biting out big chunks at a time. Basically, once we get food, we need to be able to eat a bunch of it fast, because more dangerous predators would come along soon.
https://www.nku.edu/~whitsonma/Bio120LSite/Bio120LReviews/Bio120LAnimalRev.html

Note that what society considers meat is very limited. In the wild, primates would eat birds, lizards, insects, crustaceans, worms, and anything else available. Some primates eat other primate species on a monthly basis.

Also compare our digestive tracts past the teeth. Our stomach is designed to help break down meat, and liberate protein. Our duodenum is designed to begin the breakdown of fats. Our jejunum is designed to absorb carbs, fats, and proteins that have been liberated above. Our ileum is designed to absorb trace nutrients, excess bile, vitamins, and whatever wasn’t absorbed above. Our colons are designed for residual fermentation and moisture absorption.
https://www.quora.com/Are-apes-herbivores-And-if-so-why-do-they-have-such-huge-canines

Our colons are half the size of our more vegetarian cousins among primates. We also have a very small appendix. These are related to having a lower capacity to break down cellulose. In other words, we can eat some vegetation, but not the same variety as some other species.
https://blogs.scientificamerican.com/guest-blog/human-ancestors-were-nearly-all-vegetarians/
https://en.wikipedia.org/wiki/Appendix_(anatomy)

Our stomachs are elastic, and can hold quite a lot of food. Human gastric juice is specifically designed to break down proteins.
https://en.wikipedia.org/wiki/Gastric_acid

When food is low in animal protein, food passes fairly quickly through the stomach. When it’s very meaty, it hangs out in the stomach for multiple hours.
https://www.ncbi.nlm.nih.gov/pubmed/3428803

Info about gastric emptying rates:
http://www.vivo.colostate.edu/hbooks/pathphys/digestion/basics/transit.html
https://www.mayoclinic.org/digestive-system/expert-answers/faq-20058340`
https://www.physiology.org/doi/10.1152/ajpgi.1989.257.2.G284
https://www.freetrainers.com/forums/topic/eating-before-workout-17839/
* local copy at http://omnitech.net/health/2018/06/06/digestion-time-of-various-foods/
* Sorry this last one is not better quality. I have not been able to find research, nor older references.

This delay is so that we can absorb all of it, not because we’re having a problem. Problem foods either come up, or pass through rapidly.
https://www.foodsafety.gov/poisoning/symptoms/symptoms.html
https://en.wikipedia.org/wiki/Gastrocolic_reflex

Herbivores, such as cattle, use extended duration fermentation to break down plant matter.
https://www.ncbi.nlm.nih.gov/pubmed/29053599
http://www.vivo.colostate.edu/hbooks/pathphys/digestion/largegut/ferment.html

Basically, our structure is specifically adapted to handle different types and amounts of foods, depending on whatever is available at the time.
https://www.mainstreetsmiles.com/dental-and-skull-anatomy-of-carnivores-herbivores-and-omnivores/

A major exception is that we’re structured to not eat large amounts of carbohydrates except when we are recovering from, or in the middle of endurance exercise. We’re better at it than our distant ancestors, because we’ve been doing agriculture for a LONG time, way longer than written language.
https://www.ncbi.nlm.nih.gov/pmc/articles/PMC2377015/

If we have been out hunting all day, then eating the equivalent of 10 refined peaches in 5 minutes is not so bad. It goes into the muscles and the liver to replenish glycogen, repair damage, and keep feeding ATP systemwide.
https://www.ncbi.nlm.nih.gov/pmc/articles/PMC3248697/

When we are recovered, this is not the case.

Our insulin has a half-life of about 10 minutes naturally, Natural insulin levels oscillate by a factor of 8 over 3-6 minute periods. When our livers and muscles are replete with glycogen (locally stored carbohydrate), those tissues refuse to absorb more glucose.
https://en.wikipedia.org/wiki/Insulin#Oscillations
https://www.ncbi.nlm.nih.gov/pubmed/17822199
https://www.ncbi.nlm.nih.gov/pubmed/17822201/
https://en.wikipedia.org/wiki/Insulin_oscillation

In response, blood glucose levels go up, and the body releases even more insulin. The loop happens until our fat cells kick into overdrive, and our livers kick into overdrive, and all of the glucose gets stored as fat.
https://en.wikipedia.org/wiki/Insulin

During this process, our muscle cells down-regulate their sensitivity to insulin, because obviously, something is wrong. Muscles are already full, so why are you trying to feed them? Literally, GLUT4 receptor production rate is related to the energy needs of the cell. If the needs are low, then the levels can be reduced enough to induce insulin resistance.
https://www.ncbi.nlm.nih.gov/pubmed/22403297

Also, insulin is transported into a cell along with the transport protein. Endocytosis of the GLUT4 receptor is faster than regeneration and exocytosis.
Sherwood, Lauralee; Klandorf, Hillar; Yancey, Paul (2012-01-01). Animal Physiology: From Genes to Organisms. Cengage Learning. ISBN 1133709516

Muscle cells have secondary functions to absorb glucose when needed anyway, so it’s just a courtesy that they listen for insulin at all.
https://www.ncbi.nlm.nih.gov/pubmed/3899806
https://www.ncbi.nlm.nih.gov/pubmed/27411383

Along the same lines, the pancreas down-regulates the number of islet (beta) cells, because obviously, such high levels of insulin must mean we have too many cells. https://www.ncbi.nlm.nih.gov/pubmed/15655713

Unfortunately, in its panic, the liver has to pack it into very low density lipoprotein myceles (VLDL), which is particularly difficult for our body to deal with. This gets stuffed into the walls of our arteries just to keep it from killing us on the spot. This leads to necrosis, clots, hardened arteries, etc.
https://www.mayoclinic.org/diseases-conditions/high-blood-cholesterol/expert-answers/vldl-cholesterol/faq-20058275
https://www.health.harvard.edu/heart-health/how-its-made-cholesterol-production-in-your-body

None of this cascade of metabolic hormone dysfunction happens from eating excess meat, though excess of any food can lead to obesity and long-term insulin resistance. Protein takes longer to convert to glucose, but does have a nitrogen load on the kidneys. There are limits to how much can be acquired “in the wild”, and this tends to be much better self-regulated due to the longer gastric clearance times.
* more sources needed here, but I’m tired.

Eating high amounts of animal fat or cholesterol also does not cause a lipid problem for the blood. Dietary fats are packaged as High Density Lipoprotein (HDL) and carried to the liver for further processing, or to fat cells for storage. HDL has the benefit of also scavenging free fatty acids out of the blood, and off of the walls of blood vessels.
https://www.ncbi.nlm.nih.gov/pmc/articles/PMC4265799/

80% of the body’s cholesterol is produced by the liver, and excess is excreted by being bound in non-digested plant matter in the intestines.
https://www.health.harvard.edu/heart-health/how-its-made-cholesterol-production-in-your-body

Note that the epidemic of obesity in the US aligns closely with the low-fat claims. The recommendation for low-fat diets coincides with higher carbohydrate consumption (how else do you get energy?). This shift happened in 1977. You can see this coincides with a sharp uptick in obesity rates here:
https://stateofobesity.org/obesity-rates-trends-overview/
https://www.npr.org/sections/thesalt/2014/03/28/295332576/why-we-got-fatter-during-the-fat-free-food-boom

In summary, we’re supposed to eat alternating meat and plant meals, but not so much in the way of carbohydrates. When we do eat carbohydrates, it would be perhaps one or two small pieces of fruit during a hunt, or as a special treat during the week that the small fruits were ripening on the tree, but not demolished by birds, or perhaps a handful of grass seeds or beans in passing.

A nice reference of all of the pieces of the digestive system:
https://en.wikipedia.org/wiki/Human_digestive_system

  • Further discussion could be had on the health, social, and environmental implications of using technology to bypass these physiological limitations.

AIX 7.2 crash removing adapters from etherchannel

If I remove the first main adapter, and re-add it, then I can add/remove either adapter or IP interface after that.

If I remove the second main adapter, and re-add it, then I cannot remove the first, and dropping the IP interface crashes.

So, assuming adapter_names=ent2,ent6

This works everywhere:
/usr/lib/methods/ethchan_config -d ent17 ent2
/usr/lib/methods/ethchan_config -a ent17 ent2
/usr/lib/methods/ethchan_config -d ent17 ent6
/usr/lib/methods/ethchan_config -a ent17 ent6
/usr/sbin/rmdev -Rl en17
/usr/sbin/mkdev -l en17
/usr/sbin/cfgmgr
# Can do any combination of the above after remove/readd first adapter in advance.

And this crashes everywhere:
/usr/lib/methods/ethchan_config -d ent17 ent6
/usr/lib/methods/ethchan_config -a ent17 ent6
# crashed here on one server
/usr/lib/methods/ethchan_config -d ent17 ent2
ethchan_config: 0950-021 Unable to delete adapter ent2 from the
EtherChannel because it could not be found, errno = 2
/usr/sbin/rmdev -Rl en17

# crash here on several others

Crash analysis follows:

(96)> stat
SYSTEM_CONFIGURATION:
CHRP_SMP_PCI POWER_PC POWER_8 machine with 160 available CPU(s) (64-bit
registers)

SYSTEM STATUS:
sysname... AIX
nodename.. testnode001
release... 2
version... 7
build date Mar 2 2018
build time 13:02:46
label..... 1809C_72H
machine... 00DEADBEEF00
nid....... FBCAFE4C
time of crash: Wed May 9 04:45:59 2018
age of system: 25 day, 10 hr., 54 min., 41 sec.
xmalloc debug: enabled
FRRs active... 0
FRRs started.. 0

CRASH INFORMATION:
CPU 96 CSA F00000002FF47600 at time of crash, error code for LEDs:
30000000
pvthread+1A0E00 STACK:
[00009324].unlock_enable_mem+000018 ()
[06058D54]shientdd:entcore_disable_tx_timeout_timers@AF123_105+000074
(??, ??)
[060592E8]shientdd:entcore_suspend_nic+000028 (??, ??)
[0605FB20]shientdd:entcore_suspend+0001E0 (??, ??, ??)
[06129A68]shientdd:entcore_close_common+000668 (??)
[0612A0B0]shientdd:entcore_close+000490 (??)
[060103CC]shientdd:shi2ent_close+00000C (??)
[F1000000C04911C0]ethchandd:ethchan_close+0001A0 (??)
[00014D70].hkey_legacy_gate+00004C ()
[0057A914]ns_free+000074 (??)
[00014F50].kernel_add_gate_cstack+000030 ()
[069E503C]if_en:en_ioctl+0002DC (??, ??, ??)
[0057126C]if_detach+0001CC (??)
[0056E1DC]ifioctl+00081C (F00000002FF473D0, 8020696680206966,
00000000066EB8A0)
[005EA764]soo_ioctl+0005C4 (??, ??, ??)
[007A4754]common_ioctl+000114 (??, ??, ??, ??)
[00003930]syscall+000228 ()
[kdb_get_virtual_memory] no real storage @ 2FF22358
[D011C92C]D011C92C ()
[kdb_read_mem] no real storage @ FFFFFFFFFFF5D60

(96)> status | grep -v wait
CPU INTR TID TSLOT PID PSLOT PROC_NAME
96 20E03BF 6670 380324 3128 ifconfig

(96)> vmlog
Most recent VMM errorlog entry
Error id = DSI_PROC
Exception DSISR/ISISR = 000000000A000000
Exception srval = 00007FFFFFFFD080
Exception virt addr = 0000000000000004
Exception value = 00000086 EXCEPT_PROT

0x86:
Protection exception. An attempt was made to write to a protected
address in memory

(96)> th -n ifconfig
SLOT NAME STATE TID PRI RQ CPUID CL WCHAN
pvthread+1A0E00 6670*ifconfig RUN 20E03BF 03E 96 0
shientdd:.entcore_disable_tx_timeout_timers AF123_105+000074
bla < .unlock_enable>
.
2390 ! SUNLOCK(TX_QUEUE_SLOCK, tx_pri);
.

---- NDD INFO ----( F1000B003952B410)----
name............. ent6 alias............ en6
ndd_next......... 0000000000000000
ndd_flags........ 00610812
(BROADCAST!NOECHO!64BIT!CHECKSUM_OFFLOAD)
ndd_2_flags...... 00000930
(IPV6_LARGESEND!IPV6_CHECKSUM_OFFLOAD!LARGE_RECEIVE!ECHAN_ELEM)

(96)> print entcore_acs_t F1000B00393F0000
struct entcore_acs_t
struct entcore_tx_queue_t
< ...>
struct entcore_ras_cb_t *ffdc_ras_cb = 0xF1000B0039537D40;
struct entcore_tx_atomics_t *atomics = 0x0000000000000000;
struct mbuf *overflow_queue = 0x0000000000000000;
struct mbuf *overflow_queue_tail = 0x0000000000000000;
uint64_t ofq_cnt = 0x0000000000000000;
struct entcore_lock_info_t *p_lock_info = 0x0000000000000000;
void *p_acs = 0xF1000B00393F0000; NULL so DSI

(96)> dd F1000B00393F78D0
F1000B00393F78D0: 0000000000000000 < - p_lock_info

(96)> xm F1000B00393F78D0
Page Information:
heap_vaddr = F1000B0000000000
P_allocrange (range of 2 or more allocated full pages)
page........... 00003937 start.. F1000B00393F0000 page_cnt....... 0017
allocated_size. 00170000 pd_size........ 00010000 pinned......... yes
XMDBG: ALLOC_RECORD

Allocation Record:
F1000B00E4306600: addr......... F1000B00393F0000 allocated pinned
F1000B00E4306600: req_size..... 1458712 act_size..... 1507328
F1000B00E4306600: tid.......... 033F0187 comm......... cfgshien
XMDBG: ALLOC_RECORD
Trace during xmalloc() on CPU 00
0604FCB0(.entcore_allocate_acs+000310)
060129C4(.entcore_config_state_machine+
0601A884(.entcore_perform_init+0000A4)

Free History:
105D 40.955808 SHIENTDD GEN: L3 Close__B d1=F1000B00393F0000
105D 40.955808 SHIENTDD GEN: L3 CloseC_B d1=F1000B00393F0000
105D 40.955809 SHIENTDD GEN: L3 HwClos_B d1=F1000B00393F0000
105D 40.955810 SHIENTDD GEN: L3 HwClos_B -HW| d1=0000000000000000
105D 40.955810 SHIENTDD GEN: L3 HwClos10 -HW| d1=0000000000000000
105D 40.955810 SHIENTDD GEN: L3 HwClos_E -HW| d1=0000000000000000
105D 40.955811 SHIENTDD GEN: L3 HwClos_E d1=0000000000000000

< ...>

105D 41.039269 SHIENTDD GEN: L3 CloseC_E d1=F1000B00393F0000
105D 41.039269 SHIENTDD GEN: L3 Close__E d1=0000000000000000
105D 41.039273 SHIENTDD GEN: L3 Close__B d1=F1000B00393F0000

another close ? >>

105D 41.039273 SHIENTDD GEN: L3 CloseC_B d1=F1000B00393F0000
105D 41.039274 SHIENTDD GEN: L3 HwClos_B d1=F1000B00393F0000
105D 41.039275 SHIENTDD GEN: L3 HwClos_B -HW| d1=0000000000000000
105D 41.039275 SHIENTDD GEN: L3 HwClos10 -HW| d1=0000000000000000
105D 41.039276 SHIENTDD GEN: L3 HwClos_E -HW| d1=0000000000000000
105D 41.039276 SHIENTDD GEN: L3 HwClos_E d1=0000000000000000
105D 41.039276 SHIENTDD GEN: L3 Suspnd_B d1=F1000B00393F0000
105D 41.039279 SHIENTDD GEN: L3 MctSyn_B d1=F1000B00393F0000
105D 41.039281 SHIENTDD GEN: L3 MctSyn_E d1=0000000000000000
END

It seems that 2 closes happened, which would have leaded to a double free, and the crash.

Debug efix was tested for 2 weeks on 24 systems and problem was resolved, patch was stabl.

APAR IJ06720 was generated, and a public efix will be released for that./


Cousins…

A few years ago, I was in an area where white is a serious minority. I wanted to catch a movie. For a hundred miles around, I was part of a tiny minority. In visual range, I was THE white guy.

I walked around the mall a bit, but nothing caught my eye. I went to the box office, and could not get attention. No one would make eye contact with me. I asked for a ticket, and I was told “We don’t have a ticket for you.” Others were getting their tickets, just not me.

Some people would smile, and some would frown. Lots of suspicious looks, but lots of people who just knew I was an outsider, but it did not matter. Fragments of resentment of my outsider money were sprinkled around the edges.

This was temporary. Also, not everywhere was like that.

I got a cab, and went back to my hotel. Taxi driver was social and nice, but he was used to being around every kind if person. A customer is a customer to him.

My favorite food place didn’t care, other than a little squinting when accent differences had to be worked out. Their customers ran the gamut too.

But I got to go back home.

What if every single day was like this How would you react? How long would it take you to snap at someone for mistreating you because you’re an outsider?

Would you yell at someone when you are the only one of “your kind” in a sea of others? Would you feel safe?

What risks do you have in being the outsider that no one REALLY would be too upset about seeing you mistreated?

Who’s your chaperone? Who vouches for you as an outsider that’s okay?

Don’t let people be an outsider. Invite them in. Don’t hide from the awkward feeling. We’re all one big, extended family. Invite your distant cousin to sit with you. Hear a story, and do not worry that your life is different, or theirs is different.

Experience variety, not uniformity. Forgive the people who don’t do things “the right way” and above all else, remember the feeling of love. Feeling tense? Remember love. Frustrated? Overlay love. Angry? Love.

You can love without giving up what you need too. It just helps not give too much hassle to others who are probably feeling just as frustrated.

I may not always understand everything that’s going on, but you’re all my cousins. I hate to see you fight. Let’s get out of here and grab some food.


Posted in xaminmo | Comments Off on Cousins…