send-pack: add new tracing regions for push
At $DAYJOB we experienced some slow pushes and needed additional trace data to diagnose them. Add trace2 regions for various sections of send_pack(). Signed-off-by: Josh Steadmon <steadmon@google.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>maint
							parent
							
								
									a45ab54987
								
							
						
					
					
						commit
						db5281276e
					
				
							
								
								
									
										16
									
								
								send-pack.c
								
								
								
								
							
							
						
						
									
										16
									
								
								send-pack.c
								
								
								
								
							|  | @ -75,6 +75,7 @@ static int pack_objects(int fd, struct ref *refs, struct oid_array *advertised, | ||||||
| 	int i; | 	int i; | ||||||
| 	int rc; | 	int rc; | ||||||
|  |  | ||||||
|  | 	trace2_region_enter("send_pack", "pack_objects", the_repository); | ||||||
| 	strvec_push(&po.args, "pack-objects"); | 	strvec_push(&po.args, "pack-objects"); | ||||||
| 	strvec_push(&po.args, "--all-progress-implied"); | 	strvec_push(&po.args, "--all-progress-implied"); | ||||||
| 	strvec_push(&po.args, "--revs"); | 	strvec_push(&po.args, "--revs"); | ||||||
|  | @ -146,8 +147,10 @@ static int pack_objects(int fd, struct ref *refs, struct oid_array *advertised, | ||||||
| 		 */ | 		 */ | ||||||
| 		if (rc > 128 && rc != 141) | 		if (rc > 128 && rc != 141) | ||||||
| 			error("pack-objects died of signal %d", rc - 128); | 			error("pack-objects died of signal %d", rc - 128); | ||||||
|  | 		trace2_region_leave("send_pack", "pack_objects", the_repository); | ||||||
| 		return -1; | 		return -1; | ||||||
| 	} | 	} | ||||||
|  | 	trace2_region_leave("send_pack", "pack_objects", the_repository); | ||||||
| 	return 0; | 	return 0; | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -170,6 +173,7 @@ static int receive_status(struct packet_reader *reader, struct ref *refs) | ||||||
| 	int new_report = 0; | 	int new_report = 0; | ||||||
| 	int once = 0; | 	int once = 0; | ||||||
|  |  | ||||||
|  | 	trace2_region_enter("send_pack", "receive_status", the_repository); | ||||||
| 	hint = NULL; | 	hint = NULL; | ||||||
| 	ret = receive_unpack_status(reader); | 	ret = receive_unpack_status(reader); | ||||||
| 	while (1) { | 	while (1) { | ||||||
|  | @ -268,6 +272,7 @@ static int receive_status(struct packet_reader *reader, struct ref *refs) | ||||||
| 			new_report = 1; | 			new_report = 1; | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
|  | 	trace2_region_leave("send_pack", "receive_status", the_repository); | ||||||
| 	return ret; | 	return ret; | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -512,8 +517,11 @@ int send_pack(struct send_pack_args *args, | ||||||
| 	} | 	} | ||||||
|  |  | ||||||
| 	git_config_get_bool("push.negotiate", &push_negotiate); | 	git_config_get_bool("push.negotiate", &push_negotiate); | ||||||
| 	if (push_negotiate) | 	if (push_negotiate) { | ||||||
|  | 		trace2_region_enter("send_pack", "push_negotiate", the_repository); | ||||||
| 		get_commons_through_negotiation(args->url, remote_refs, &commons); | 		get_commons_through_negotiation(args->url, remote_refs, &commons); | ||||||
|  | 		trace2_region_leave("send_pack", "push_negotiate", the_repository); | ||||||
|  | 	} | ||||||
|  |  | ||||||
| 	if (!git_config_get_bool("push.usebitmaps", &use_bitmaps)) | 	if (!git_config_get_bool("push.usebitmaps", &use_bitmaps)) | ||||||
| 		args->disable_bitmaps = !use_bitmaps; | 		args->disable_bitmaps = !use_bitmaps; | ||||||
|  | @ -641,10 +649,11 @@ int send_pack(struct send_pack_args *args, | ||||||
| 	/* | 	/* | ||||||
| 	 * Finally, tell the other end! | 	 * Finally, tell the other end! | ||||||
| 	 */ | 	 */ | ||||||
| 	if (!args->dry_run && push_cert_nonce) | 	if (!args->dry_run && push_cert_nonce) { | ||||||
| 		cmds_sent = generate_push_cert(&req_buf, remote_refs, args, | 		cmds_sent = generate_push_cert(&req_buf, remote_refs, args, | ||||||
| 					       cap_buf.buf, push_cert_nonce); | 					       cap_buf.buf, push_cert_nonce); | ||||||
| 	else if (!args->dry_run) | 		trace2_printf("Generated push certificate"); | ||||||
|  | 	} else if (!args->dry_run) { | ||||||
| 		for (ref = remote_refs; ref; ref = ref->next) { | 		for (ref = remote_refs; ref; ref = ref->next) { | ||||||
| 			char *old_hex, *new_hex; | 			char *old_hex, *new_hex; | ||||||
|  |  | ||||||
|  | @ -664,6 +673,7 @@ int send_pack(struct send_pack_args *args, | ||||||
| 						 old_hex, new_hex, ref->name); | 						 old_hex, new_hex, ref->name); | ||||||
| 			} | 			} | ||||||
| 		} | 		} | ||||||
|  | 	} | ||||||
|  |  | ||||||
| 	if (use_push_options) { | 	if (use_push_options) { | ||||||
| 		struct string_list_item *item; | 		struct string_list_item *item; | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue
	
	 Calvin Wan
						Calvin Wan