User-Submitted Improvements

"Les mecs, j'ai un virus sur mon ordi" disait Barbie. "Lol, achète un Mac !" répondit Steven. "J'ai pas que ça à foutre, Brian, t'as un conseil ?" s’énervât Barbie  "Bah... Installe Linux !" lui conseilla-t-il "Vous êtes vraiment chiant les gars..."
"Les mecs, j'ai un virus sur …
"Oh no, cosmonauts"
"Oh no, cosmonauts"
jkghkhkjnmnmbhe lost files and repair both of our laptops.
jkghkhkjnmnmbhe lost files an…
Writing JavaScript with semicolons?! Give me some semicolon-free ECMAScript6 compiled to ES5 any time!
Writing JavaScript with semic…
"Norm! Norm! Norm! Norm! Norm! Norm! Norm! Norm! Norm! Norm! Norm! Norm! Go back to 1995! AAAAAARRRRGHHH!!!!!!!"
"Norm! Norm! Norm! Norm! Norm…
As soon as class begins, Barbie raises her hand. "Yes, Barbie?" asks Ms. Smith, the teacher. "Why is my name spelled out in ASCII code on your screen?" asks Barbie. "Are you doxxing me?"
As soon as class begins, Barb…
After many hours of installing open-source alternative software, Barbie has eradicated the trial-version bloatware from Skipper's Laptop. "I told you not to get a Dell you newb" she says derisively.
After many hours of installin…
Darby had to email Tim Cook, but suddenly her laptop went to OS X Yosemite. "Skeuomorphism!" says Darby. Darby and Skipper try to repair her MacBook Air, but Boot Camp happens. "Looks like you need Satya Nadella!!!!" said Skipper angrily.
Darby had to email Tim Cook, …
Cyber cyber cyber cyber. dual rot-13, Dual_EC_DRBG, strcpy php VB6
Cyber cyber cyber cyber. dual…
"In Soviet Russia, Gates opens you!!" complains Darby. "True," says Skipper. "Darby, why not Jim Allchin?" "Did we have a Mac Mini with Mac OS X Tiger?!" "Nope," says Darby. "Can Saddam Hussein kick Steve Jobs' butt... what else?"
"In Soviet Russia, Gates open…
Wow they migrated my data to Rucio. Everything is bright and shiny now.
Wow they migrated my data to …
"Gamergate isn't about misogyny, doxxing journalists or rage-quitting, baby," said Rod. "We just want transparency and integrity in game journos," he cooed.  "Indeed... However, your 90 minutes of free public WIFI have expired," trolled the librarian.
"Gamergate isn't about misogy…
"Hi guys. Not to be rude but can you go away? I'm pretty busy designing the Artificial Intelligence trees for my video game." Stated Barbie.
"Hi guys. Not to be rude but …
"It will go faster if Brian and I do some geeky sh**t," offers Steven. "Great!" says Barbie. "Steven, will you boot up Debian using this here sparkle drive?" "Sure!" says Steven. "Library Windoze Nazi OS going bye-bye in 10...9...8...."
"It will go faster if Brian a…
"I'm only doing the back end development"  barbie says, laughing. "brian can make the graphics!"
"I'm only doing the back end …
Hey sis, I've been coding for too many hours; it's time to take a break. Maybe we can have a pillow fight another time, I'm going to take a walk.
Hey sis, I've been coding for…
"Your robot puppy is so sweet," says Skipper. "Can I play your game?" "Of course you can!" Barbie says, laughing, "Brian and Steven are going to do some testing, but when it's in beta"
"Your robot puppy is so sweet…
"Can Brian and I help?" asks Steven. "Great!" says Barbie. "You can do some user testing for me." "Sure!" says Steven. "The library computer has the latest browsers installed, we can use that."
"Can Brian and I help?" asks …
"These are Steven and Brian's design ideas!" Barbie says, laughing. "I'll be doing the code. Graphic design is it's own highly technical skill, and just because I'll be coding it doesn't mean I know how to make it look great! That's why building a game like this is such a team effort."
"These are Steven and Brian's…
In computer class, Barbie raises her hand. "Yes, Barbie?" asks Ms. Smith, the teacher. "Why did you use the E13B standard font to encode my name in binary when other methods of representation are far more efficient?" The teacher is surprised, because all other students need their laptop for reading binary, but Barbie obviously doesn't.
In computer class, Barbie rai…
I do not eat breakfast. Please do not ask me any questions about
what I will do for breakfast. Please just do not bring it up.
I do not eat breakfast. Pleas…
"Usually I get paid for doing my job, but this time just high fives will be okay"
"Usually I get paid for doing…
After class, Barbie meets with Steven and Brian in the library. "Hi, guys," says Barbie. "Steven, I forked your repo and I noticed you're using some gems with really degrading and sexist names. Would you like me to help you find some less offensive alternatives?"
After class, Barbie meets wit…
void rcu_irq_exit(void)
{
	unsigned long flags;
	long long oldval;
	struct rcu_dynticks *rdtp;

	local_irq_save(flags);
	rdtp = this_cpu_ptr(&rcu_dynticks);
	oldval = rdtp->dynticks_nesting;
	rdtp->dynticks_nesting--;
	WARN_ON_ONCE(rdtp->dynticks_nesting < 0);
	if (rdtp->dynticks_nesting)
		trace_rcu_dyntick(TPS("--="), oldval, rdtp->dynticks_nesting);
	else
		rcu_eqs_enter_common(rdtp, oldval, true);
	rcu_sysidle_enter(rdtp, 1);
	local_irq_restore(flags);
}
void rcu_irq_exit(void) { un…
/*
 * Core SRCU state machine.  Advance callbacks from ->batch_check0 to
 * ->batch_check1 and then to ->batch_done as readers drain.
 */
static void srcu_advance_batches(struct srcu_struct *sp, int trycount)
{
	int idx = 1 ^ (sp->completed & 1);

	/*
	 * Because readers might be delayed for an extended period after
	 * fetching ->completed for their index, at any point in time there
	 * might well be readers using both idx=0 and idx=1.  We therefore
	 * need to wait for readers to clear from both index values before
	 * invoking a callback.
	 */

	if (rcu_batch_empty(&sp->batch_check0) &&
	    rcu_batch_empty(&sp->batch_check1))
		return; /* no callbacks need to be advanced */

	if (!try_check_zero(sp, idx, trycount))
		return; /* failed to advance, will try after SRCU_INTERVAL */

	/*
	 * The callbacks in ->batch_check1 have already done with their
	 * first zero check and flip back when they were enqueued on
	 * ->batch_check0 in a previous invocation of srcu_advance_batches().
	 * (Presumably try_check_zero() returned false during that
	 * invocation, leaving the callbacks stranded on ->batch_check1.)
	 * They are therefore ready to invoke, so move them to ->batch_done.
	 */
	rcu_batch_move(&sp->batch_done, &sp->batch_check1);

	if (rcu_batch_empty(&sp->batch_check0))
		return; /* no callbacks need to be advanced */
	srcu_flip(sp);

	/*
	 * The callbacks in ->batch_check0 just finished their
	 * first check zero and flip, so move them to ->batch_check1
	 * for future checking on the other idx.
	 */
	rcu_batch_move(&sp->batch_check1, &sp->batch_check0);

	/*
	 * SRCU read-side critical sections are normally short, so check
	 * at least twice in quick succession after a flip.
	 */
	trycount = trycount < 2 ? 2 : trycount;
	if (!try_check_zero(sp, idx^1, trycount))
		return; /* failed to advance, will try after SRCU_INTERVAL */

	/*
	 * The callbacks in ->batch_check1 have now waited for all
	 * pre-existing readers using both idx values.  They are therefore
	 * ready to invoke, so move them to ->batch_done.
	 */
	rcu_batch_move(&sp->batch_done, &sp->batch_check1);
}

/*
 * Invoke a limited number of SRCU callbacks that have passed through
 * their grace period.  If there are more to do, SRCU will reschedule
 * the workqueue.
 */
static void srcu_invoke_callbacks(struct srcu_struct *sp)
{
	int i;
	struct rcu_head *head;

	for (i = 0; i < SRCU_CALLBACK_BATCH; i++) {
		head = rcu_batch_dequeue(&sp->batch_done);
		if (!head)
			break;
		local_bh_disable();
		head->func(head);
		local_bh_enable();
	}
}

/*
 * Finished one round of SRCU grace period.  Start another if there are
 * more SRCU callbacks queued, otherwise put SRCU into not-running state.
 */
static void srcu_reschedule(struct srcu_struct *sp)
{
	bool pending = true;

	if (rcu_batch_empty(&sp->batch_done) &&
	    rcu_batch_empty(&sp->batch_check1) &&
	    rcu_batch_empty(&sp->batch_check0) &&
	    rcu_batch_empty(&sp->batch_queue)) {
		spin_lock_irq(&sp->queue_lock);
		if (rcu_batch_empty(&sp->batch_done) &&
		    rcu_batch_empty(&sp->batch_check1) &&
		    rcu_batch_empty(&sp->batch_check0) &&
		    rcu_batch_empty(&sp->batch_queue)) {
			sp->running = false;
			pending = false;
		}
		spin_unlock_irq(&sp->queue_lock);
	}

	if (pending)
		queue_delayed_work(system_power_efficient_wq,
				   &sp->work, SRCU_INTERVAL);
}

/*
 * This is the work-queue function that handles SRCU grace periods.
 */
void process_srcu(struct work_struct *work)
{
	struct srcu_struct *sp;

	sp = container_of(work, struct srcu_struct, work.work);

	srcu_collect_new(sp);
	srcu_advance_batches(sp, 1);
	srcu_invoke_callbacks(sp);
	srcu_reschedule(sp);
}
EXPORT_SYMBOL_GPL(process_srcu);
/* * Core SRCU state machine…

more (170 pages)