User-Submitted Improvements

"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…
For no reason at all, Kylie takes on REGEDIT again. Two laptops = double that HAXX0RZ!
For no reason at all, Kylie t…
"It will go faster if Brian and I help," says Steven. "It's sweet of you to offer," says Barbie, "but I've got this, thanks." Steven nods, and he and Brian leave. Barbie sits down and cracks her knuckles, ready to solve the problem in front of her.
"It will go faster if Brian a…
"What's up sis?" asks Skipper. "Ugh, I'm 10 hours into debugging a race condition in this shitty Intel wireless driver." exclaims Barbie. "Why did I choose to be a kernel hacker, I could have done so much more with my life!"
"What's up sis?" asks Skipper…
Le BIOS n'était pas protégé alors, j'ai booté avec un Live Debian, et j'ai fait un Dual-boot, j'ai enfin une vrai machine qui tourne.
Le BIOS n'était pas protégé a…
This is like one of those awkward diversity photos that companies put out to try and convince people their engineering staff isn't all white and asian dudes.
This is like one of those awk…
"Who needs a split ergonomic keyboard when you can just buy two laptops?"
"Who needs a split ergonomic …
After class, Steven and Brian come across Barbie typing furiously in the library. "Hi, guys," says Barbie. "Skippers computer has been rootkitted, and I thought it'd be an interesting exercise to recreate the MBR by hand."
After class, Steven and Brian…
"It will go faster if Brian and I help," offers Steven. "Great!" says Barbie. "Steven, can you go get me some coffee?" "Sure!" says Steven. “The cafeteria usually has good coffee."
"It will go faster if Brian a…
Skipper asks Barbie to help her on a programming assignment for her introductory data structures class. "This code is fucking terrible." says Barbie. "Why are you using *another* list to reverse a linked list? Can't you do it in place n00b?. Also your editor sucks, who uses gedit?"
Skipper asks Barbie to help h…
"Your robot puppy is so sweet," says Skipper. "Can I play your game?" "I'm only creating the design ideas," Barbie says, laughing, “I won’t have the lower-level code done until tomorrow."
"Your robot puppy is so sweet…
"In order to fix these computers we must first plug in the PS1", says Brian, "it can't get viruses".
"Here, let me try and infect it with 'Ratchet and Clank' that I downloaded off of piratebay", replied Barbie.
"In order to fix these comput…
"It will go faster if Brian and I help," offers Steven. "Great!" says Barbie. "How bout you stop fucking around with the monitor cable and actually do something useful?"
"It will go faster if Brian a…
Barbie tries to email her design to Steven, but suddenly her screen starts blinking. "That's weird!" says Barbie. Barbie and Skipper try to reboot the computer but nothing happens. "Looks like you've got CIH, big sister," says Skipper.
Barbie tries to email her des…
The next morning, Barbie gives her sister a big surprise. Skipper turns on her laptop--and it works! "You are just too cool, Barbie! you fixed my computer and now I can look at pictures of cats all day while Facebook chatting!"
The next morning, Barbie give…
After class Barbie decided to hack not one, not two, but three computers with one male to male USB cable. Her boyfriends had no idea how she managed to do it or why there were randoms 0's and 1's on the middle computer
After class Barbie decided to…
"It will go faster if Brian and I help," offers Steven. "Great!" says Barbie. "Physics attributes and rendering are already done - by me - for much of the game. What have you done?" she asked.
"It will go faster if Brian a…
The next morning, Barbie gives her sister a big surprise. Skipper turns on her laptop--and it dual-boots into Linux! "No more incompatibility," says Barbie, "but next time you might want to check the compatibility wiki before buying a new laptop."
                                                                                                 
"You are just too cool, Barbie!" Skipper gives Barbie a big hug.
The next morning, Barbie give…

more (171 pages)